类似于彩虹的颜色排序算法

4

所以我使用chroma.js生成随机颜色并将它们混合在一起。

enter image description here

这看起来还不错,因为chroma.js中的混合效果非常出色。但是请注意图片中有两个或三个绿点(或更多),还有一些紫点等等。为了让它看起来更美观,我想把颜色在混合之前排序,使它们更像彩虹。想知道是否有任何方法可以做到这一点,或者是否有可能以某种方式实现,我无法想象如何做到这一点。

就我所想的而言,对于每种颜色, 计算它到6个彩虹颜色之一的距离。最接近红色的排在第一位,然后是最接近橙色的,以此类推。但我真的不知道该如何做到这一点,似乎很复杂。


2
将RGB转换为HSV/HSL(参考此帖此帖或其他任何RGB到HSV/HSL的方法),或者只提取色调,然后按照色调排序。 - Amadan
太好了!你解决了,耶,谢谢 :) - Lance
1个回答

7
按色调排序将给您“像彩虹一样”的颜色。然而,请注意,虽然彩虹颜色是完全饱和的颜色,但您的颜色集合也会变化饱和度和亮度。因此,按色调排序可能不会产生最好的外观结果。
从给定的颜色集中创建最平滑的调色板的问题相当于旅行推销员问题。当然,不需要精确解决方案,任何快速的近似都可以。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接