【问题标题】:C++/CLI Visual C++ 2010 Express - Drawing multiple ellipsesC++/CLI Visual C++ 2010 Express - 绘制多个椭圆
【发布时间】: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);

它绘制以矩形为边界的红色椭圆,并用红色填充它。 (假设我会给xy)。我遇到的问题是,当我想在 RANDOM 位置绘制多个这样的椭圆时。所以我需要传递随机的xy(使用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


    【解决方案1】:

    所有x, y 坐标都是随机的,因此它们不依赖于其他一些决定程序,因此不需要传递给panel1_paint,而是您可以运行 lpop 并生成随机数以将它们用作您的x, y 坐标。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-20
      • 2011-06-22
      • 2017-08-31
      • 1970-01-01
      • 2016-04-10
      • 1970-01-01
      • 2011-03-11
      相关资源
      最近更新 更多