nic*_*ckf 21
将每种颜色分成RGB组件,然后计算所需的各个步骤.
oldRed = 120;
newRed = 200;
steps = 10;
redStepAmount = (newRed - oldRed) / steps;
currentRed = oldRed;
for (i = 0; i < steps; i++) {
currentRed += redStepAmount;
}
Run Code Online (Sandbox Code Playgroud)
显然将其扩展为绿色和蓝色.
如果您想要一个看起来像大多数颜色选择器 GUI 小部件的混合,您确实需要转换为 HSL 或 HSV。从那里开始,您可能可以在每个维度上进行线性插值。
尝试直接在 RGB 色彩空间中进行插值是一个坏主意。它太非线性了(不,伽玛校正在这种情况下没有帮助)。