public override void Draw(Graphics g) { int x1 = 0, y1 = 0; // previous point int x2, y2; // current point g.SmoothingMode = SmoothingMode.AntiAlias; Pen pen = new Pen(Color, PenWidth); PointEnumerator enumerator = pointArray.GetEnumerator(); if (enumerator.MoveNext()) { x1 = ((Point)enumerator.Current).X; y1 = ((Point)enumerator.Current).Y; } while (enumerator.MoveNext()) { x2 = ((Point)enumerator.Current).X; y2 = ((Point)enumerator.Current).Y; g.DrawLine(pen, x1, y1, x2, y2); x1 = x2; y1 = y2; } pen.Dispose(); }
protected override void CreateObjects() { if (AreaPath != null) { return; } AreaPath = new GraphicsPath(); int x1 = 0, y1 = 0; int x2, y2; PointEnumerator enumerator = pointArray.GetEnumerator(); if (enumerator.MoveNext()) { x1 = ((Point)enumerator.Current).X; y1 = ((Point)enumerator.Current).Y; } while (enumerator.MoveNext()) { x2 = ((Point)enumerator.Current).X; y2 = ((Point)enumerator.Current).Y; AreaPath.AddLine(x1, y1, x2, y2); x1 = x2; y1 = y2; } AreaPath.CloseFigure(); AreaRegion = new Region(AreaPath); }
public override void Draw(Graphics g, double zoomFactor = 1.0) { int x1 = 0, y1 = 0; // previous pointscroll int x2, y2; // current pointscroll g.SmoothingMode = SmoothingMode.AntiAlias; Pen pen = new Pen(Color, PenWidth); PointEnumerator enumerator = pointArray.GetEnumerator(); if (enumerator.MoveNext()) { x1 = (int)(Math.Round(((Point)enumerator.Current).X * zoomFactor)); y1 = (int)(Math.Round(((Point)enumerator.Current).Y * zoomFactor)); } while (enumerator.MoveNext()) { x2 = (int)(Math.Round(((Point)enumerator.Current).X * zoomFactor)); y2 = (int)(Math.Round(((Point)enumerator.Current).Y * zoomFactor)); g.DrawLine(pen, x1, y1, x2, y2); x1 = x2; y1 = y2; } pen.Dispose(); }
/// <summary> /// Create graphic object used for hit test /// </summary> protected override void CreateObjects() { if (AreaPath != null) { return; } // Create closed path which contains all polygon vertexes AreaPath = new GraphicsPath(); int x1 = 0, y1 = 0; // previous point int x2, y2; // current point PointEnumerator enumerator = pointArray.GetEnumerator(); if (enumerator.MoveNext()) { x1 = ((Point)enumerator.Current).X; y1 = ((Point)enumerator.Current).Y; } while (enumerator.MoveNext()) { x2 = ((Point)enumerator.Current).X; y2 = ((Point)enumerator.Current).Y; AreaPath.AddLine(x1, y1, x2, y2); x1 = x2; y1 = y2; } AreaPath.CloseFigure(); // Create region from the path AreaRegion = new Region(AreaPath); }