C# 生成随机但好看的不同颜色?
有没有什么众所周知的方法来生成随机的、好看的但又与众不同的颜色?我以前就用过这个,并且能够随机生成颜色。然而,要么它们很有可能变成“丑陋”(黄棕色、绿灰色和其他颜色),要么它们几乎是一样的 现在,对于测量两种颜色是否几乎相同,只需获取颜色通道并比较它们之间的差异就很容易了 我怀疑我将始终需要生成1到15种颜色C# 生成随机但好看的不同颜色?,c#,C#,有没有什么众所周知的方法来生成随机的、好看的但又与众不同的颜色?我以前就用过这个,并且能够随机生成颜色。然而,要么它们很有可能变成“丑陋”(黄棕色、绿灰色和其他颜色),要么它们几乎是一样的 现在,对于测量两种颜色是否几乎相同,只需获取颜色通道并比较它们之间的差异就很容易了 我怀疑我将始终需要生成1到15种颜色 编辑这是我用JavaScript制作的一些图形。这可能有助于您理解我为什么需要它。我假设您正在RGB颜色空间中随机化;如果使用不同的颜色空间,例如HSB,则更容易确定两种颜色是否相似,并且
编辑这是我用JavaScript制作的一些图形。这可能有助于您理解我为什么需要它。我假设您正在RGB颜色空间中随机化;如果使用不同的颜色空间,例如HSB,则更容易确定两种颜色是否相似,并且可以限制每个轴的范围以排除“难看”颜色 例如,您可能希望使用以下方法创建第一种颜色:
- 全色调
- 全饱和(100%)
- 上50%的亮度
- 第一种颜色的色调+/-某个随机值
- 全饱和(100%)
- 亮度较低50%,但与第一种颜色相比,在足够远的距离处达到最大值
可能性是无穷无尽的,但关键思想是HSB是一个更“自然”的颜色空间,可以随机化,因为你控制颜色的感知属性(色调、饱和度、亮度),而不是技术属性(三个通道的强度)。我不知道如何选择单一颜色,因为“丑陋”和“好看”这些都是非常主观的术语 另一方面,配色方案或匹配的颜色集有一定的理论依据,很有可能选择匹配良好的随机颜色
查看此网站:。在为一个主要绘制线条图的绘图工具实施HSB时,我发现HSB模型在生成随机颜色方面给了我很大的控制,但仍然很难找到彼此相邻时看起来不一样的颜色。我想对那些视力比我差的人来说更糟糕(老年人有三焦点等)
基于这种经验,我建议你不要局限于颜色。将形状和图案与随机挑选的一组硬编码颜色一起使用。为什么不将15种颜色硬编码在一起看起来很好?因为在罕见的情况下,我需要更多的颜色。我的情况是,我不想将用户的元素数量限制为15个。你确定光是颜色就足以表示这一点吗?你使用的颜色越多,就越难区分它们?你也考虑过使用符号/图标吗?这是一个比较班级学生的图表。因此,恐怕图标不能使用。