public override void OnMouseDown(int x, int y, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { n++; if (n == 1) { SharpMap.Geometries.Point P0 = new SharpMap.Geometries.Point(x, y); SharpMap.Geometries.Point P1 = new SharpMap.Geometries.Point(x, y); SharpMap.Geometries.Point P2 = new SharpMap.Geometries.Point(x, y); vertices.Add(P0); vertices.Add(P1); vertices.Add(P2); line = new LinearRing(vertices); } else if (n == 2) { vertices[1] = new SharpMap.Geometries.Point(x, y); PointF p1 = new PointF((float)vertices[0].X, (float)vertices[0].Y); PointF p2 = new PointF(x, y); mScreenDisplay.DrawPolyline(Pens.Blue, p1, p2); //n = 0; } else if (n == 3) { vertices[2] = new SharpMap.Geometries.Point(x, y); polygon.ExteriorRing = line; if (line != null) { SolidBrush brush = new SolidBrush(Color.Blue); Pen pen = new Pen(brush); // mScreenDisplay.DrawPolygon(polygon, brush, pen, false); mScreenDisplay.NewObject = polygon; } } else { SharpMap.Geometries.Point P4 = new SharpMap.Geometries.Point(x, y); vertices.Add(P4); SolidBrush brush = new SolidBrush(Color.Blue); Pen pen = new Pen(brush); // mScreenDisplay.DrawPolygon(polygon, brush, pen, false); mScreenDisplay.NewObject = polygon; } mMapCtrl.Refresh(); } else if (e.Button == MouseButtons.Right) { mMapCtrl.Refresh(); vertices = new List <SharpMap.Geometries.Point>(); polygon = new Polygon(); tempPolygon = new Polygon(); n = 0; } }
public override void OnMouseMove(int x, int y) { if (n < 1) { } else { double xmin = line.Envelop.Left; double ymin = line.Envelop.Lower; double w = line.Envelop.Width; double h = line.Envelop.Height; Rectangle invalidaterect = new Rectangle((int)xmin, (int)ymin, (int)w, (int)h); invalidaterect.Inflate(2, 2); (mScreenDisplay as ScreenDisplayOld).RepaintStatic(invalidaterect); PointF p1 = new PointF((float)line.P0.X, (float)line.P0.Y); PointF p2 = new PointF(x, y); mScreenDisplay.DrawPolyline(Pens.Blue, p1, p2); line.P1 = new RPoint(x, y, 0); } }
public override void Draw(IScreenDisplayOld display) { if (ShapeType == 0) { for (int i = 0; i < mGeometries.Count; i++) { RPoint pt = mGeometries[i] as RPoint; if (pt != null) { display.DrawPoint(new Pen(Color.Red), pt); } } } if (ShapeType == 1) { for (int i = 0; i < mGeometries.Count; i++) { RPolyline pt = mGeometries[i] as RPolyline; if (pt != null) { display.DrawPolyline(new Pen(Color.Red), pt); } } } if (ShapeType == 2) { for (int i = 0; i < mGeometries.Count; i++) { RPolygon pt = mGeometries[i] as RPolygon; if (pt != null) { display.DrawPolygon(new Pen(Color.Red), pt); } } } }