生成独特的随机显着颜色?

时间:2011-04-15 15:53:52

标签: c# asp.net vb.net

我正在尝试在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

3 个答案:

答案 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可以固定在看起来最好的