我使用下面的公式从colorA到colorB得到一个漂亮的颜色渐变,但我不知道如何对3种颜色做同样的事情,所以渐变从colorA到colorB再到colorC
colorT = colorA * p + colorB * (1.0 - p);
其中“p”是从0.0到1.0的百分比
由于
答案 0 :(得分:3)
感谢您的公式。但是我不得不对它进行一些修改,因为它没有正确地插入3种颜色之间(颜色变化有跳跃)
以下是解决方法:
if (p < 0.5)
{
COLORx = (COLORb * p * 2.0) + COLORa * (0.5 - p) * 2.0;
}
else
{
COLORx = COLORc * (p - 0.5) * 2.0 + COLORb * (1.0 - p) * 2.0;
}
答案 1 :(得分:2)
嗯,对于3种颜色,你可以使用p = 0.0到2.0:
if p <= 1.0
colorT = colorA * p + colorB * (1.0 - p);
else
colorT = colorB * (p - 1.0) + colorC * (2.0 - p);
或者缩放它,这样你仍然可以使用p = 0.0到1.0:
if p <= 0.5
colorT = colorA * p * 2.0 + colorB * (0.5 - p) * 2.0;
else
colorT = colorB * (p - 0.5) * 2.0 + colorC * (1.0 - p) * 2.0;
答案 2 :(得分:2)
可能为此构造单个表达式,但最简单的是使用条件来使用不同的表达式,具体取决于您是在A - B部分还是B - C部分的范围:
colorT =
p < 0.5
? colorA * p * 2.0 + colorB * (1.0 - p * 2.0)
: colorB * (p - 0.5) * 2.0 + colorC * (1.0 - (p - 0.5) * 2.0);
答案 3 :(得分:1)
答案 4 :(得分:0)
您希望能够创建3种颜色但相同的渐变效果吗?完全相同:完成此渐变后,启动一个新颜色,其中colorA是当前颜色B,colorB是新颜色。附加结果,您就完成了:
colorA ---- colorB colorB ---- colorC
祝你好运!