2011-12-09 40 views
2

我想用不同的颜色画线(约100)。这些线将循环绘制并获得随机颜色。这里是我的代码:.net笔画与笔(不同的颜色)在一个循环中

for(int i = 0; i < 100 < i++) 
{ 
srand(time(NULL)); 
int index = rand() % 99; 
Pen^ my_pen = gcnew Pen((Color)CustomColorTables[index]); 
g->drawLine(my_pen,startPointAray[i],stopPointArray[i]); 
} 

但它绘制所有线条相同的颜色?

注:我查了随机值,有大约生成随机值没有问题。

回答

1

尝试把行:

srand(time(NULL)); 

进入for循环。 在你的情况下,你每次重置伪随机序列,你可能会得到一个错误的序列。 然后使用:

int index = (100*rand()) % 99; 

因为RAND()自行返回从0到1的数字,你会总是收到99为%的结果。

+0

结果是一样的:/ – user983924

+0

@ user983924甚至通过乘以rand()* 100之前? –

+0

我在循环之前替换了srand函数并解决了问题。谢谢 – user983924

0

尝试更换:

CustomColorTables[index]; 

有:

CustomColorTables[i]; 

,如果它工作比以前更好,因为我相信,这个问题是你生成方式,并使用随机值指标。

+0

它绘制相同,我认为问题是关于笔。 – user983924

+0

CustomColorTables变量中有多少种颜色和哪些值? –

+0

100种颜色和我创作的颜色表。 – user983924