根据输入坐标绘制多边形

如何根据C#中给出的输入坐标绘制多边形。

在此处输入图像描述

您没有显示任何代码,因为基于这些坐标,您正在对图像应用某种forms的缩放。

使用PictureBox的Paint事件,这是一个使用屏幕上的坐标的示例。 它填充多边形,然后绘制边框,然后循环遍历所有点以绘制红色圆圈:

void pictureBox1_Paint(object sender, PaintEventArgs e) { e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; e.Graphics.Clear(Color.White); // draw the shading background: List shadePoints = new List(); shadePoints.Add(new Point(0, pictureBox1.ClientSize.Height)); shadePoints.Add(new Point(pictureBox1.ClientSize.Width, 0)); shadePoints.Add(new Point(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height)); e.Graphics.FillPolygon(Brushes.LightGray, shadePoints.ToArray()); // scale the drawing larger: using (Matrix m = new Matrix()) { m.Scale(4, 4); e.Graphics.Transform = m; List polyPoints = new List(); polyPoints.Add(new Point(10, 10)); polyPoints.Add(new Point(12, 35)); polyPoints.Add(new Point(22, 35)); polyPoints.Add(new Point(24, 22)); // use a semi-transparent background brush: using (SolidBrush br = new SolidBrush(Color.FromArgb(100, Color.Yellow))) { e.Graphics.FillPolygon(br, polyPoints.ToArray()); } e.Graphics.DrawPolygon(Pens.DarkBlue, polyPoints.ToArray()); foreach (Point p in polyPoints) { e.Graphics.FillEllipse(Brushes.Red, new Rectangle(pX - 2, pY - 2, 4, 4)); } } } 

在此处输入图像描述

您可以使用Graphics.DrawPolygon 。 您可以将坐标存储在Point数组中,然后将其传递给DrawPolygon方法。 你可能想看看:

使用C#在WinForms中使用图形绘图

 private System.Drawing.Graphics g; System.Drawing.Point[] p = new System.Drawing.Point[6]; p[0].X = 0; p[0].Y = 0; p[1].X = 53; p[1].Y = 111; p[2].X = 114; p[2].Y = 86; p[3].X = 34; p[3].Y = 34; p[4].X = 165; p[4].Y = 7; g = PictureBox1.CreateGraphics(); g.DrawPolygon(pen1, p);