c ++中的色标

时间:2017-04-12 02:29:08

标签: c++ colors

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

如何处理这些值以获取其中任何一个的rgb?

1 个答案:

答案 0 :(得分:1)

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