DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#のPoint多次元配列についておしえてください

分類:[.NET]

Visual C# でポリゴン(2次元)を描くプログラムを作ろうと思っています。

PointF[] polygonPoints = new PointF[PolygonSide];
for (i = 0; i < PolygonSide; i++)
{
  polygonPoints[i].X = e.X
  polygonPoints[i].Y = e.Y
}
grfx.DrawLines(new Pen(ForeColor), polygonPoints);

上のコードは省略してありますが、これで1つのポリゴンは描けるようになりました。
しかし、複数のポリゴンを "PolygonNumber" を使って格納するように
"polygonPoints" を配列にしたいのですがやり方がわかりません。

PointF[] polygonPoints[PolygonNumber] = new PointF[PolygonPoints][PolygonSide];

↑こんな風にしたいんですが、エラーがでてしまって・・・・
またそれに応じた DrawPolygon の扱い方もわかりません。
どなたか教えていただけませんでしょうか?
よろしくお願いします。
こんばんは、Kimさん。ピラルクです。

配列の配列は、宣言の[]の位置や、同時に初期化するかとか記述
パターンが多いので、慣れないとちょっと難しいです。

-----------------------------------------------------------------
//▼side角形のポリゴンをnum個、乱数で作ってDrawPolygonで描画する一例
-----------------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e)
{
  PointF[][] data = MakePolygonData(5, 5);

  Graphics g = this.CreateGraphics(); //←コレは画面が重なったら消える
  Pen pen = new Pen(Color.Black, 3);

  foreach (PointF[] polydata in data) 
  {
    g.DrawPolygon(pen, polydata);
  }
}

private PointF[][] MakePolygonData(int count_num, int count_side) 
{
  Random rnd = new Random();

  PointF[][] data = new PointF[count_num][];

  for (int poly_num = 0; poly_num < data.Length; poly_num++) 
  {
    data[poly_num] = new PointF[count_side];
    for (int poly_side = 0; poly_side < data[poly_num].Length; poly_side++) 
    {
      data[poly_num][poly_side].X = rnd.Next(this.Width); 
      data[poly_num][poly_side].Y = rnd.Next(this.Height); 
    }
  }

  return data;
}
ピラルクさん

ありがとうございます。
早速教えてもらったとおりやって見ようかと思います。
本当に助かりました。

Kim
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板