2

我想用不同的颜色画线(大约 100 条)。线条将循环绘制并获得随机颜色。这是我的代码:

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]);
}

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

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

4

2 回答 2

1

尝试放置线:

srand( time(NULL) );

在进入 for 循环之前。在您的情况下,您每次都在重置伪随机序列,并且您可能会获得错误的序列。然后使用:

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

因为 rand() 本身返回一个从 0 到 1 的数字,您将始终收到 99 作为 % 结果。

于 2011-12-09T13:33:36.050 回答
0

尝试替换:

CustomColorTables[index];

和:

CustomColorTables[i];

如果我相信它比以前更好,那么问题在于您生成和使用随机值索引的方式。

于 2011-12-09T13:31:00.860 回答