我正在尝试在c#或vb.net中生成唯一且显着的随机颜色。我现在使用下面的代码。但是这段代码产生的颜色几乎一样,并没有太大的变化。
独特的颜色怎么样?
Private Function GetRandomColor() As Color
Dim RandGen As New Random()
Return Color.FromArgb(RandGen.Next(70, 200), RandGen.Next(100, 225),
RandGen.Next(100, 230))
End Function
答案 0 :(得分:2)
它很可能是因为你每次都在创建一个新的Random实例。尝试在方法之外移动实例,例如在类级别,并查看是否有帮助
即
Dim RandGen As New Random()
Private Function GetRandomColor() As Color
Return Color.FromArgb(RandGen.Next(70, 200), RandGen.Next(100, 225),
RandGen.Next(100, 230))
End Function
答案 1 :(得分:2)
尝试随机选择其中一个RGB值为低(0-100)。
答案 2 :(得分:1)
你最好使用一个生成HSL颜色的类,这样就更容易控制突出。那里有一些课
比如......
http://www.geekymonkey.com/Programming/CSharp/RGB2HSL_HSL2RGB.htm
或
http://richnewman.wordpress.com/hslcolor-class/
控制亮度/饱和度意味着你可以在任何色调上获得鲜艳的色彩..
使用richnewmans类...
var c = new HSLColor(new Random(0,100),80,80);
我们只在色调中设置一个随机值,sat和lum可以固定在看起来最好的