如何从种子中生成随机的人类可读颜色? C#

时间:2010-04-26 06:58:58

标签: c# colors random

有一个日志文件,里面有各种文本。目前它只显示为一种颜色,每个条目都显示如下:

Log from section 1: Some text here 
Log from section 125: Some text here 
Log from section 17: Some text here 
Log from section 1: Some text here 
Log from section 125: Some text here 
Log from section 1: Some text here 
Log from section 17: Some text here

现在日志文件实时显示,并且使具有相同节号的行具有相同的颜色将是很好的。但是,可能会有相当多的数字。

我想要做的是创建一个采用数字的方法,并随机生成一种独特的颜色。颜色必须在黑色背景下可读,因此#000000不好,#101010或任何太暗都无法读取。

理想情况下,两个相似的数字不会产生相同的颜色,因为在上面的例子中,数字1和17可能太相似,而某些数字可能在10,000范围内。

有关于此的任何想法吗?

2 个答案:

答案 0 :(得分:2)

对于可以使用多少种不同颜色,存在一些相当严格的认知限制。最好仔细预先选择一系列颜色。如果你真的需要区分十几个不同的项目,你需要使用其他东西,比如改变背景颜色。

此外,请记住,10%的男性(因此也是开发人员)是色盲,所以除非只是为了您自己的利益,否则我不会过分依赖颜色。

在TortoiseSVN的blame工具中可以找到一种非常有趣的替代技术,当鼠标在窗口上移动时,它会动态地突出显示匹配修订的行。

答案 1 :(得分:1)

是。只需为HSV颜色空间中的颜色生成随机数,并确保V高于50%(因此它不会太暗)。 Convert back to RGB as necessary。很简单。

确保颜色不太相似......我不知道。找出可能的数字范围并均匀地分割色轮?