给定开始和结束颜色的平滑颜色分级

时间:2012-03-20 15:46:28

标签: graphics colors

控制具有开始和结束颜色的颜色分级的最佳方法是什么?使用RGB还是HSV?

E.g

step = 1/nrColors;
currStep = 0;

for i = 1:nrColors

   p = sigmoid(currStep);

   R = start.R * p + end.R * (1-p)
   G = ...
   B = ...

currStep = currStep + step ;
end

   H = start.H * p + end.R * (1-p)
   S = ...
   V = ...

如果不是上述两种情况,我可以实现良好的转换(颜色彼此太紧,或者从人类的角度来看颜色不是很平滑)。

我在哪里可以找到关于这个主题的好参考?

最佳,

1 个答案:

答案 0 :(得分:1)

理论上,如果您在“Lab”色彩空间中进行插值,您将获得与人类感知的最佳匹配:

http://en.wikipedia.org/wiki/CIELAB

此外,如果要设置颜色过渡动画,则可以使用S形插值,但如果要显示一系列样本,这些样本可以从一种颜色平滑地插入到另一种颜色中(这听起来就像是你说的那样)彼此太紧了),那么你可能只想线性插值。否则,开始和结束颜色将非常相似,中间的颜色会更加分散。