int の 2D 配列で描画しているため (質問を編集した後にわかる限り)、2D 配列に数値を格納する独自のポリゴン塗りつぶしを実装する必要があるようです。この目的のために、この投稿を使用できます固体の 2 次元ポリゴンを描画するための良いアルゴリズム?
もう 1 つの解決策は、ちょっとした回避策です。PolygonFill
ビットマップでポリゴンを塗りつぶす、既に実装されているものを使用できます。これをチェックしてください。ビットマップ ピクセルの取得は非常に遅く、そのために FastBitmap 実装を使用できることを警告する必要があります。ここでは通常のビットマップを使用します。
Bitmap bmp = new Bitmap(0,0,mostRightPoint.X - mostLeftPoint.X, mostUpperPoint.Y - mostLowerPoint.Y);
//this implies that you are on the northern hemisphere
Graphics g = Graphics.FromImage(bmp);
g.Clear(Color.White); //clear the whole bitmap into white color
int [] points = new points[nmbOfPoints];
for(int i = 0;i<nmbOfPoints;i++)
{
//put the points in the points array
}
g.FillPolygon(Brushes.Black, points);
g.Dispose();
ここで、ビットマップを反復処理する必要があります。ピクセルが黒の場所で、2D 配列に数字の 3 を入れます。次のように考えてください。
for(int i = 0;i<bmp.Width;i++)
for(int j = 0;j<bmp.Height;j++)
if(Bitmap.GetPixel(i,j) == Color.Black)
{
2DArray[mostLeftPoint.X + i, mostLowerPoint.Y + j] = 3;
}
問題の意味と可能な解決策を理解したと思います。