2017-04-12 52 views
0

我有一個從-1到1的浮點值數組。 我想獲得一個漸變顏色比例紅色黃色綠色藍色紫色,其中顏色取決於值的大小(1代表紅色,-1代表藍色,0代表綠色?)。C++中的顏色刻度

我應該如何處理這些值以獲得任何rgb值?

回答

1

假設您想要一個線性插值漸變,那麼您可以對數組中的每個變量執行此操作。 r,g,b,將在0..1範圍內,並且如果需要,可以很容易地將其轉換爲0..255個整數。

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; 
}