有没有一种很好的方法来迭代颜色?我知道这听起来像一个奇怪的问题,但这是一个类比。
假设您编写了一个环游地球的游戏。您选择一个起点,然后定义重复应用的规则。例如:从地球上的当前位置开始,然后定义穿过您的位置以及北极和南极的大圆。每走一步,沿着这个圆圈行驶10英里。每一步都会带您进入与之前相似的气候(尽管有时候你会因为你在海洋中而非常潮湿)。或者每步走6,000英里。现在每一步都是一个非常不同的气候。
现在想象一个用随机颜色在屏幕上绘制元素的程序。也许您将增量设置为较小的数字,每种颜色与之前的颜色非常相似。也许你把它设置得很高,每种颜色都与之前的颜色非常不同。
如果你使用RGB值并逐渐递增R,G和B,你会逐渐改变,直到其中一个值换行并且你会突然改变。
对于HSB值,色调的色域是圆形的,因此没有不连续性。 S和B不是,你可能遇到一段难以区分的颜色,因为S太低而且看起来都很白。将S和B保持在最大值是可能的,尽管它会留下很多颜色。
程序的每次运行仅使用少量颜色(10到15)。我想随意选择值,以便有一次颜色和谐地混合,有一次它们发生冲突,有一次它们都是粉彩,有一次它们是饱和和柔和的混合物等。
答案 0 :(得分:2)
答案 1 :(得分:0)
考虑HSL bicone,你可以做到256色以上(见wikipedia HSV/HSL page)。它看起来有点像球体,将球体上的每个点平移到双锥体表面上的点都不需要太多工作。现在,颜色行走与行星行走相同。你仍然错过了不饱和的颜色,包括灰色。你可以用RGB彩色立方体做同样的事情:想象一下走在表面 - 选择一个恒定的方向或随机移动。
可能更简单但只是修改你的原始RGB想法使用反射而不是包装。如果你在(50,100,255)并且你的步进增量是(1,2,3),你的下一个颜色是(51,102,252)并且你的增量被调整为(1,2,-3)