.net Drawlines с ручками (разные цвета) в цикле - PullRequest
2 голосов
/ 09 декабря 2011

Я хочу рисовать линии (около 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]);
}

Но он рисует все линии одним цветом ???

Примечание: я проверил случайные значения, нет проблем с генерацией случайных значений.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Попробуйте разместить строку:

srand( time(NULL) );

ДО вход в цикл for. В вашем случае вы сбрасываете каждый раз псевдослучайную последовательность, и вы, вероятно, получаете неправильную последовательность. Тогда используйте:

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

потому что rand () сама по себе возвращает число от 0 до 1, и вы всегда получите 99 в качестве% результата.

0 голосов
/ 09 декабря 2011

попробуйте заменить:

CustomColorTables[index];

на:

CustomColorTables[i];

, если это работает лучше, чем раньше, как я считаю, проблема в том, как вы генерируете и используете случайное значениеиндекс.

...