Forum: Compiler & IDEs Farben faden


von Robert S. (razer) Benutzerseite


Lesenswert?

hallo an alle,

Ich habe habe hier ei kleine s Lichtspiel. Es besteht aus drei Leds 
(R,G,B).
In meinem Programm hab ich nun mehrere Farben im RGB Farbraum definiert. 
Nun möchte ich zwischen zwei Farben faden.

Doch nur wie bringe ich da einen sauberen Übergang zusammen?

Ich hoffe ihr könnt mir helfen.

lg Robert

von Jörg (Gast)


Lesenswert?

Wenn t aus [0..1], (R0,G0,B0) und (R1,G1,B1) die beiden Farben sind:

  th = 1-t
  R = R0*th + R1*t
  G = G0*th + G1*t
  B = B0*th + B1*t

oder für z.B. t aus [0..16] (16 Stufen, für viele Effekte ausreichend):

  th = 16-t
  R = (R0*th + R1*t) >> 4
  G = (G0*th + G1*t) >> 4
  B = (B0*th + B1*t) >> 4


Für Übergang über 3 Farben:

  t0 =   (16-t)*(16-t)
  t1 = 2*    t *(16-t)
  t2 =       t *    t
  R = (R0*t0 + R1*t1 + R2*t2) >> 4
  R = (G0*t0 + G1*t1 + G2*t2) >> 4
  R = (B0*t0 + B1*t1 + B2*t2) >> 4

Gruss

Jörg

von Robert S. (razer) Benutzerseite


Lesenswert?

Ich hab es nun anders gelöst. Ich hab mir die Farben in de HSV Farbraum 
umgerechnet. nun fade ich zwischen zwei H Werten und rechne das zurück 
in RGB Werte für die LEDs.

lg Robert

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.