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

时间:2012-02-18 16:32:30

标签: c#

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

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

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

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

3 个答案:

答案 0 :(得分:10)

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

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

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

然后使用对比色:

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

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

答案 1 :(得分:3)

我不知道选择单一颜色,因为“丑陋”和“好看”是非常主观的术语。

另一方面,颜色方案或匹配的颜色组合背后有一些理论,并且很有可能选择合适的随机颜色。

查看此网站:Color Scheme Designer

答案 2 :(得分:1)

当为主要使用线图的图形工具实现HSB时,我发现HSB模型让我可以很好地控制生成随机颜色,但是在旁边找到看起来不一样的颜色仍然非常困难。彼此。我认为对于那些视力较差的人来说,情况比我的情况更糟(老年人有三脚肉等等。)

根据这些经验,我建议您不要局限于颜色。使用形状和图案以及随机选择的硬编码颜色集。