随机生成独特的颜色?

soo*_*ise 4 c#

我正在使用可绘制彩色线条的图形包(255,255,255).基本上我正在做的是(Random.Next(0,255),Random.Next(0,255),Random.Next(0,255))每次添加一行时生成一个颜色.

这一切都很好,但有时,我得到的颜色看起来非常相似,这使得用户很难辨别哪些数据对应哪一行.

是否有更聪明的方法来生成(255,255,255)格式的随机和独特颜色?

Ree*_*sey 12

更好的选择是通常生成随机色调,并使用HSL或HSV颜色(具有该色调)将色调转换为RGB颜色.通过使用随机"色调"而不是随机颜色,您的颜色会有更多变化.如果您需要更多变化,您还可以随机化其他组件(饱和度/值等).

有关使用HSV/HSL处理颜色的详细信息,请参阅Wikipedia,包括如何将HSV转换为RGB.


Nei*_*l N 7

检查"颜色距离"

假设RGB是XYZ坐标,进行3D距离计算.如果颜色与之前生成的所有颜色之间的距离不至少为N,请重试.

N是您决定的值.