Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 生成随机但好看的不同颜色?_C# - Fatal编程技术网

C# 生成随机但好看的不同颜色?

C# 生成随机但好看的不同颜色?,c#,C#,有没有什么众所周知的方法来生成随机的、好看的但又与众不同的颜色?我以前就用过这个,并且能够随机生成颜色。然而,要么它们很有可能变成“丑陋”(黄棕色、绿灰色和其他颜色),要么它们几乎是一样的 现在,对于测量两种颜色是否几乎相同,只需获取颜色通道并比较它们之间的差异就很容易了 我怀疑我将始终需要生成1到15种颜色 编辑这是我用JavaScript制作的一些图形。这可能有助于您理解我为什么需要它。我假设您正在RGB颜色空间中随机化;如果使用不同的颜色空间,例如HSB,则更容易确定两种颜色是否相似,并且

有没有什么众所周知的方法来生成随机的、好看的但又与众不同的颜色?我以前就用过这个,并且能够随机生成颜色。然而,要么它们很有可能变成“丑陋”(黄棕色、绿灰色和其他颜色),要么它们几乎是一样的

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

我怀疑我将始终需要生成1到15种颜色


编辑这是我用JavaScript制作的一些图形。这可能有助于您理解我为什么需要它。

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

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

  • 全色调
  • 全饱和(100%)
  • 上50%的亮度
然后是对比色,使用:

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

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

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

另一方面,配色方案或匹配的颜色集有一定的理论依据,很有可能选择匹配良好的随机颜色


查看此网站:。

在为一个主要绘制线条图的绘图工具实施HSB时,我发现HSB模型在生成随机颜色方面给了我很大的控制,但仍然很难找到彼此相邻时看起来不一样的颜色。我想对那些视力比我差的人来说更糟糕(老年人有三焦点等)


基于这种经验,我建议你不要局限于颜色。将形状和图案与随机挑选的一组硬编码颜色一起使用。

为什么不将15种颜色硬编码在一起看起来很好?因为在罕见的情况下,我需要更多的颜色。我的情况是,我不想将用户的元素数量限制为15个。你确定光是颜色就足以表示这一点吗?你使用的颜色越多,就越难区分它们?你也考虑过使用符号/图标吗?这是一个比较班级学生的图表。因此,恐怕图标不能使用。