用于C++的颜色地图库,可将给定值转换为红色,绿色和蓝色值
答
在想这个的方式,对于库太简单了个人而言,我已经实现了它我的自我他们在C的例子(你可以看一下维基百科的解释数学):
/**
* Computes the color gradiant
* color: the output vector
* x: the gradiant (beetween 0 and 360)
* min and max: variation of the RGB channels (Move3D 0 -> 1)
*/
void GroundColorMix(double* color, double x, double min, double max)
{
/*
* Red = 0
* Green = 1
* Blue = 2
*/
double posSlope = (max-min)/60;
double negSlope = (min-max)/60;
if(x < 60)
{
color[0] = max;
color[1] = posSlope*x+min;
color[2] = min;
return;
}
else if (x < 120)
{
color[0] = negSlope*x+2*max+min;
color[1] = max;
color[2] = min;
return;
}
else if (x < 180 )
{
color[0] = min;
color[1] = max;
color[2] = posSlope*x-2*max+min;
return;
}
else if (x < 240 )
{
color[0] = min;
color[1] = negSlope*x+4*max+min;
color[2] = max;
return;
}
else if (x < 300 )
{
color[0] = posSlope*x-4*max+min;
color[1] = min;
color[2] = max;
return;
}
else
{
color[0] = max;
color[1] = min;
color[2] = negSlope*x+6*max;
return;
}
}
+0
是的,但你可能想不同的方案以供选择,如MATLAB。 – Nils
被问及这深夜,想着它寻找一个颜色选择的时候说得很简单:) – Nils