2017-04-12 13 views
0

Ich habe ein Array von Float-Werten von -1 bis 1. Ich möchte eine Farbskala rot-gelb-grün-blau-lila, wo die Farbe hängt von der Größe des Wertes (1 ist für rot, -1 ist für blau, 0 ist für grün?).Farbskala in C++

Wie soll ich diese Werte verarbeiten, um rgb für eine von ihnen zu erhalten?

Antwort

1

Angenommen, Sie möchten einen linearen interpolierenden Gradienten, dann können Sie dies für jede Variable im Array tun. r, g, b, liegt im Bereich 0..1, und Sie können dies leicht in 0..255 ganze Zahlen umwandeln, wenn Sie müssen.

float v; // = array value 
float r = 0.f, g = 0.f, b = 0.f; 
if (v < 0) 
{ 
    b = 1.f + v; 
    g = -v; 
} 
else 
{ 
    r = v; 
    g = 1.f - v; 
} 
Verwandte Themen