我有一个从-1到1的浮点值数组。 我想得到一个渐变色标红 - 黄 - 绿 - 蓝 - 紫色,其中颜色取决于值的大小(1表示红色,-1表示蓝色,0表示绿色?)。
如何处理这些值以获取其中任何一个的rgb?
答案 0 :(得分: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;
}