Graphics2D提供了FillPolygon ,drawPolyline来填充和绘制多边形和多义线。
private void Polys() { AffineTransform mat1; /** Colors */ Color redColor = new Color(0x96ff0000, true); Color greenColor = new Color(0xff00ff00, false); Color blueColor = new Color(0x750000ff, true); Polyline polyline; Polygon polygon; Polygon polygon1; string pointsdata1 = "59,45,95,63,108,105,82,139,39,140,11,107,19,65"; mat1 = new AffineTransform(); mat1.Translate(130, 140); mat1.Rotate(-30 * Math.PI / 180.0); polyline = new Polyline(); polygon = new Polygon(); polygon1 = new Polygon(); Point[] points = Point.FromString(pointsdata1); for (int i = 0; i < points.Length; i++) { polyline.AddPoint(points[i].X, points[i].Y); polygon.AddPoint(points[i].X, points[i].Y); polygon1.AddPoint(points[i].X, points[i].Y); } //Clear the canvas with white color. graphics2D.Reset(); graphics2D.Clear(Color.White); graphics2D.AffineTransform = new AffineTransform(); SolidBrush brush = new SolidBrush(greenColor); graphics2D.FillPolygon(brush, polygon); graphics2D.AffineTransform = mat1; brush = new SolidBrush(blueColor); Pen pen = new Pen(redColor, 5); graphics2D.SetPenAndBrush(pen, brush); graphics2D.FillPolygon(null, polygon1); graphics2D.DrawPolyline(null, polyline); }