公式:
Gradient = A + (B-A) * N / Step
Gradient表示第N步的R/G/B的值,A、B、Step表示从颜色A分Step步渐变为颜色B。
例程:
通过使用:红 --> 绿 --> 蓝 --> 红 分步骤的方式,使其渐变色循环整个颜色值;
(1)红色(255,0,0)--->绿色(0,255,0)
设Step=51,将RGB(255,0,0)颜色渐变为RGB(0,255,0),即RGB(255,0,0)经过51次颜色渐变转为RGB(0,255,0);
(2)绿色(0,255,0)--->蓝色(0,0,255)
设Step=51,将RGB(0,255,0)颜色渐变为RGB(0,0,255),即RGB(0,255,0)经过51次颜色渐变转为RGB(0,0,255);
(3)蓝色(0,0,255)--->红色(255,0,0)
设Step=51,将RGB(0,0,255)颜色渐变为RGB(255,0,0),即RGB(0,0,255)经过51次颜色渐变转为RGB(255,0,0);
float R=0,G=0,B=0;
//红--->绿
//(255,0,0)-->(0,255,0)
R=255,G=0,B=0;
for(float x=1;x<51;x++){
R = 255+(0-255)*x/51;
G = 0+(255-0)*x/51;
B = 0;
printf("R=%f G=%f B=%f \n",R,G,B);
}
//绿--->蓝
//(0,255,0)-->(0,0,255)
R=0,G=255,B=0;
for(float x=1;x<51;x++){
R = 255+(0-255)*x/51;
G = 0+(255-0)*x/51;
B = 0;
printf("R=%f G=%f B=%f \n",R,G,B);
}
//蓝--->红
//(0,0,255)-->(255,0,0)
R=0,G=0,B=255;
for(float x=1;x<51;x++){
R = 255+(0-255)*x/51;
G = 0+(255-0)*x/51;
B = 0;
printf("R=%f G=%f B=%f \n",R,G,B);
}
引用连接:Python - 实现渐变色的RGB计算