初始化100点阵列

时间:2012-09-03 14:42:18

标签: arrays c++-cli managed

引自其他帖子:

致电Graphics.FillPolygon()。你需要刷子而不是笔,你必须把你的点放到array Point[].

来自MSDN的示例代码如下:

// Create solid brush.
SolidBrush^ blueBrush = gcnew SolidBrush( Color::Blue );  

// Create points that define polygon.  
Point point1 = Point(50,50);  
Point point2 = Point(100,25);  
Point point3 = Point(200,5);       
Point point4 = Point(250,50);  
Point point5 = Point(300,100);  
Point point6 = Point(350,200);  
Point point7 = Point(250,250);  
array<Point>^ curvePoints = {point1,point2,point3,point4,point5,point6,point7}; 

这太可怕了!我必须加入一百个等距点!

将多边形绘制到屏幕上。

e->Graphics->FillPolygon( blueBrush, curvePoints );

我尝试了很多东西:

array<Point,2>^ aPoints;
//Points tabPoints[10][10];//= new Points[10][10];
Points = gcnew array<Point,2>(10,10);
//init des tableaux 

for (int i = 0;i<10;i++)
{
    for(int j =0;j<10;j++)
    {
    //tabPoints[i][j].pX =i*10;
    //tabPoints[i][j].pY = j * 10;
    // = new Points(i*10,j*10);
    aPoints[i,j]= new Point(i*20,j*20);
    }
}  

它们都不起作用!

2 个答案:

答案 0 :(得分:1)

你现在所拥有的不是一个100点阵列,它是一个10x10二维阵列。试试gcnew array<Point>(100),您就可以将其传递给FillPolygon。

答案 1 :(得分:1)

二维数组不一定是您想要的,但您只需稍作修改即可使当前代码正常工作:

  • 摆脱循环中的new。您需要一个Point值,而不是一个指针。

MSDN已经有了这一部分。