-2

他の投稿からの引用:

コールし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}; 

これはひどいです!100 等間隔のポイントを配置する必要があります。

画面にポリゴンを描画します。

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);
    }
}  

それらのどれも機能しません!

4

2 に答える 2

1

必ずしも 2 次元配列が必要なわけではありませんが、わずか 1 つの変更で現在のコードを機能させることができます。

  • newループ内を取り除きます。Point値へのポインターではなく、値が必要です。

MSDN にはその部分がすでにありました。

于 2012-09-11T13:25:55.343 に答える
1

これは 100 ポイントの配列ではなく、10x10 の 2D 配列です。を試してみるgcnew array<Point>(100)と、それを FillPolygon に渡すことができます。

于 2012-09-03T17:58:54.920 に答える