Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

Farbverlauf

JamesBomb / 1 Antworten / Baumansicht Nickles

Hi. Hier eine Frage für alle Grafiker und alle anderen auch:
Nach welchen Algorithmen berechnet man einen Farbverlauf?
Anfangs und Endfarbe sind bekannt. Wie kann ich in einer Schleife alle "Zwischenfarben" mit RGB erzeugen?
Wie berechnen sich die einzelnen Farbanteile?
Malen ist dann kein Problem. Mir geht es nur um die Berechnung der Farben. Zb. von Rot nach Schwarz in n Schritten
thx

bei Antwort benachrichtigen
T-Rex JamesBomb „Farbverlauf“
Optionen

Hallo,

Du ermittelst die Zielwerte der drei Grundfarben getrennt, indem Du den Anfangsanteil vom Endanteil subtrahierst.

Dann teilst Du diese Werte durch Deine Schritte (kann ganzzahlig sein, "double" ist aber sinnvoller, da es meistens keine glatten Divisionen gibt)

Jetzt kannst Du in einer For-Schleife die Teilwerte zu den Startwerten addieren, eine Zeitverzögerung einbauen und schon ist das ganze gegessen!

Beispiel:

dword Startfarbe = 0xff0000
dword Endfarbe = 0x000000
dword NeueFarbe = 0x000000
integer Schritte = 10

// Hier sollten überall Bytes rauskommen
SchrittR = ((Startfarbe shr 16) - (Endfarbe shr 16)) / Schritte
SchrittG = (((Startfarbe and 0x00ff00) shr 8) - ((Endfarbe and 0x00ff00) shr 8)) / Schritte
SchrittB = ((Startfarbe and 0x0000ff) - (Endfarbe and 0x0000ff)) / schritte

for (int x = 0; x // neue Pixelfarbe ist:
NeueFarbe = Startfarbe + (SchrittR shl 16 or SchrittG shl 8 or SchrittB) }

Ich denke, daß Du den Code noch ein bisschen anpassen mußt!

 GrüßeT-Rex 
bei Antwort benachrichtigen