Since you are drawing in the 2D array of ints (as far as I can see after you have edited your question) it seems like you should implement your own polygon fill that is storing the numbers in the 2D array. For this purpose you could use this post Good algorithm for drawing solid 2-dimensional polygons?
The other solution is a little workaround. You could use the already implemented PolygonFill
that fills polygons in the Bitmap. Check this out. I must warn you that getting bitmap pixel is very slow and for that purposes you can use some FastBitmap implementation. Here I will use regular Bitmap.
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();
Now you should iterate through the Bitmap, on those places where the pixel is black, put the number 3 in your 2D array, somethink like this.
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;
}
I think you got the sense of the problem and a possible solution.