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 に答える