2021.6.21记载
根据数值确定渐变范围【-1,1】
主要实现红色向绿色的渐变效果
色调(E)调低偏向红色,调高偏向绿色[0-80]
饱和度(S)越高颜色越深,越低颜色越浅[0-240]
亮度(L)决定颜色的明暗程度[0-240]
void getESL(float val,float &e,float &s,float &l)
{
float e1,s1,l1;
double first=-1;
double second=0;
double three=1;
if (val<first)
{
e1=0;
s1=240;
l1=120;
}
else if (val >= first && val <second)
{
//可以调整ESL的取值范围来实现想要的渐变颜色
float a=40*(abs(val)/1.0);
float b=40*(abs(val)/1.0);
float c=40*(abs(val)/1.0);
e1=40-a;
s1=200+b;
l1=100+(100-c);
}
else if (val >= second && val <three)
{
float a=40*(abs(val)/1.0);
float b=40*(abs(val)/1.0);
float c=40*(abs(val)/1.0);
e1=40+a;
s1=200+b;
l1=100+(100-c);
}
else
{
e1&