2017-04-12 51 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; 
}