【发布时间】:2011-12-13 02:34:51
【问题描述】:
我想在某个面板上/中绘制多个填充椭圆。单画没问题,我用的是:
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)。我遇到的问题是,当我想在 RANDOM 位置绘制多个这样的椭圆时。所以我需要传递随机的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 表示我想要绘制其中的多少,并且消息框会显示它随机化的数字,因此我确信椭圆不会重叠。问题是,在“无效” panel1 之后,我只看到 1 个椭圆。 :/ 我应该怎么做才能看到他们两个?
【问题讨论】:
标签: c++ visual-studio visual-studio-2010 c++-cli drawing