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);
- }