Я хочу нарисовать несколько заполненных эллипсов на / на некоторой панели.Рисование одного не проблема, я использую:
Color aColor = Color::FromArgb( 255, 0, 0 );
SolidBrush^ aBrush = gcnew SolidBrush(aColor);
Rectangle rect = Rectangle(x, y, 10, 10);
e->Graphics->FillEllipse(aBrush, rect);
Он рисует красный эллипс, ограниченный прямоугольником, и заполняет его красным цветом.(при условии, что я дам x
и y
).Проблема, с которой я столкнулся, это когда я хочу нарисовать несколько таких эллипсов в СЛУЧАЙНЫХ местах.Поэтому мне нужно передать случайные x
и y
(используя rand()
% somenumber), но я не уверен, как я могу передать эти переменные в функцию panel1_paint
и нарисовать их, когда оба числа рандомизированы.Кроме того, я не хочу, чтобы последний эллипс исчез при рисовании нового.Единственный способ - использовать глобальные переменные?
Есть идеи?
Ну, я попытался, как и предлагалось, использовать цикл внутри панели, и я получил это:
for(int i=0; i<ile_przeszkod; i++){
int x = rand() % 690; int y = rand() % 690;
Color aColor = Color::FromArgb( 255, 0, 0 );
SolidBrush^ aBrush = gcnew SolidBrush(aColor);
Rectangle rect = Rectangle(x, y, 10, 10);
e->Graphics->FillEllipse(aBrush, rect);
MessageBox::Show("x: "+x+ " y: " +y);
}
ile_przeszkodозначает, сколько из них я хочу нарисовать, и в окне сообщения показано, какие числа были рандомизированы, поэтому я уверен, что эллипсы не перекрываются.Проблема в том, что после «аннулирования» панели 1 я вижу только 1 эллипс.: / Что я должен сделать, чтобы увидеть их обоих?