Hilfe: In PaintBox->Canvas stellenweise Punkte mit Farbverlauf zeichnen



  • Hallo Foren-Mitglieder!

    Ich möchte ein PaintBox->Canvas fogendermaßen bemalen.

    Ein horizontaler Streifen und Vertikaler Streifen:
    + - - -
    |
    |
    |
    ... dieser ist mit Hintergrund belegt (also ein großes Canvas).
    Nun möchte ich diese Streifen in vier gleich große Bereich einteilen (wie oben die Streifen mit Text "skiziert"). In jede der vier (einer Zeile; acht insgesamt) Bereiche soll nun, abhängig von Einstellungen des Programms, eine andere Farbe gezeichnet werden (in jedes der 4 (8) kleinen Einteilungen). Doch es soll ein flüssiger Übergang zwischen Hintergrundfarbe und "Kästchenfarbe" enstehen.

    Um sich das besser Vorstellen zu können:
    🤡 🤡 🤡 🤡
    🤡 - - -
    🤡 - - -
    🤡 - - -

    Die Gesichtsfarbe der Smilys (Grau) stellt den Hintergrund und die 4 Kästchen eines Streifens dar. Die Bindestriche sollen lediglich bedeuten, dass dies noch Canvas-Fläche ist (diese darf auch die Hintergrundfarbe grau besitzen). Die rote Nase soll die Einfärbung der einzelnen Kästchen darstellen.

    Ich hoffe ihr da draußen könnt meinen Vorstellungen folgen... 😋

    Vielen Dank, und schönen Tach noch,
    mario



  • Hallo

    schön... und was willst du jetzt von uns?

    bis bald
    akari



  • Naja, ich hab absolut keinen Plan wie das zu machen geht. Ich bitte euch mir zu helfen!

    Besten Dank,
    mario



  • Hallo

    dann schau dir doch erstmal die Eigentschaften und Methoden von TCanvas an.
    In <BCB-Path>\Examples\Apps\Canvas ist außerdem ein passendes Beispielprogramm

    bis bald
    akari



  • Oh mann,
    ich bekomm' das nicht hin...
    Ein paar Tipps wären da hilfreich, denn ihr könnt sowas doch in zehn Minuten programmieren 😉 !?!

    Ich danke euch, Grüße
    mario



  • was hast du den bis jetzt an code?



  • Hallo alle!

    Ich hab da mal das Canvas mit einer grauen Farbe bemalt. Dann hab ich explizit folgendes angegeben:
    kleines rotes Viereck an eine vorgegebene Koordinate gemalt,
    Um dieses rote Viereck male ich einen Rahmen mit einer wenigeren roten Farbe,
    Dann kommt hierherum wieder ein Rahmen der noch weniger rote Farbe hat,
    usw. bis der Rahmen schließlich nahezu der Hintergrundfarbe entspricht.

    Wie bereits erwähnt habe ich dies alles explizit angegeben, hatte einfach überhaupts keinen Lösungsansatz. Mir ist klar, dass wenn ich mehrer dieser roten "Punkte" malen möchte, es Unmengen an Source-code gibt - es ist einfach uneffizient.

    So bitte helft mir doch!

    Vielen Dank und frohes Schaffen!
    mario



  • mario-derandere schrieb:

    Mir ist klar, dass wenn ich mehrer dieser roten "Punkte" malen möchte, es Unmengen an Source-code gibt - es ist einfach uneffizient.

    Nö. Den Code zum Malen des Vierecks und der Rahmen lagerst du in eine Funktion aus, die als Parameter z.B. die Koordinaten entgegennimmt. Und diese Funktion kannst du dann beliebig oft aufrufen.


Anmelden zum Antworten