C++中的颜色标度

C++中的颜色标度,c++,colors,C++,Colors,我有一个从-1到1的浮点值数组。 我想得到一个渐变色标红黄绿蓝紫,其中颜色取决于值的大小,1表示红色,-1表示蓝色,0表示绿色 我应该如何处理这些值以获得其中任何一个的rgb?假设需要线性插值梯度,则可以对数组中的每个变量执行此操作。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;

我有一个从-1到1的浮点值数组。 我想得到一个渐变色标红黄绿蓝紫,其中颜色取决于值的大小,1表示红色,-1表示蓝色,0表示绿色


我应该如何处理这些值以获得其中任何一个的rgb?

假设需要线性插值梯度,则可以对数组中的每个变量执行此操作。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;
}