Color [] a=new Color[20];
Random bb=new Random(123);for(int i=0;i<a.Length;i++)
a[i]=Color.FromArgb(bb.Next(255),bb.Next(255),bb.Next(255));
Random bb=new Random(123);for(int i=0;i<a.Length;i++)
a[i]=Color.FromArgb(bb.Next(255),bb.Next(255),bb.Next(255));
你的算法,非常不错!
但是,你如何保证不会出现重复的颜色呢?
遍历一遍前面的color,发现没有相重
while(1)
{
for(int j=0;j<i;j++)
{
if(a[i]和a[j]相等)break;
}
if(j==i)//说明没有相等
break;
else a[i]=Color.FromArgb(bb.Next(255),bb.Next(255),bb.Next(255));
}
有没有考虑这个问题~~~ RGB数值有些差别~~但是实际上人的眼睛看起来颜色是一样的~~~
如果要求人的眼睛能分辨出的20种不同颜色怎么处理呢?
我觉得可能要先分段,然后随机取值
http://mubbs.vicp.net/opticall/images/CIE.jpg
http://mubbs.vicp.net/opticall/images/CIE1jpg