生成随机但美观,不同的颜色?

Mat*_*zen 4 c#

是否有任何众所周知的方法可以生成随机,美观且独特的颜色?之前我曾经使用过它,并设法随机生成颜色.然而,要么他们很有可能变成"丑陋"(黄色棕色,绿色灰色和其他),或者它们几乎是相同的.

现在,至于测量两种颜色是否几乎相同,只需采用颜色通道并比较它们之间的差异就很容易了.

我怀疑我总是需要生成1到15种颜色.

编辑它是我在JavaScript中制作的一些图形内容.这可能有助于你理解我为什么需要这个.

tda*_*ers 10

我假设你在RGB色彩空间中随机化; 如果您使用不同的颜色空间,例如HSB,则更容易确定两种颜色是否相似,并且您可以限制每个轴的范围以排除"丑陋"颜色.

例如,您可能希望使用以下方法创建第一种颜色:

  • 全方位的色调
  • 完全饱和度(100%)
  • 亮度在50%以上

然后使用以下对比色:

  • 第一种颜色的色调+/-某个随机值
  • 完全饱和度(100%)
  • 亮度在50%以下,但与第一种颜色相比,最大距离

可能性是无穷无尽的,但关键的想法是HSB是一个更加"自然"的随机化颜色空间,因为你可以控制颜色的感知属性(色调,饱和度,亮度),而不是技术属性(三个通道的强度) ).