/// <summary> /// Das Zeichnen des Kreises wird jetzt per Maus-Klick bestätigt /// </summary> /// <param name="pt"></param> /// <param name="buttons"></param> /// <param name="screenHeight"></param> /// <param name="curElement"></param> /// <param name="statusMessage"></param> /// <returns></returns> public static ClickResult Circle_ClickHandler(System.Drawing.Point pt, MouseButtons buttons, int screenHeight, ref Curve curElement, out string statusMessage) { ClickResult result = ClickResult.canceled; statusMessage = string.Empty; Point worldPoint = TransformScreen2World(pt, screenHeight); if (buttons != MouseButtons.Right) { if (curElement == null || curElement.GetType() != typeof(Circle)) { //Der Kreis-Center wird gemerkt curElement = new Circle(worldPoint, new Vector(), 0); result = ClickResult.created; statusMessage = EndMessage; } else { Circle c = curElement as Circle; //Der Raduis wird berechnen durch c.Radius = c.CenterPoint.DistanceTo(worldPoint); result = ClickResult.finished; statusMessage = StartMessage; } } return(result); }
public static ClickResult Polyline_ClickHandler(System.Drawing.Point pt, MouseButtons buttons, int screenHeight, ref Curve curElement, out string statusMessage) { ClickResult result = ClickResult.canceled; statusMessage = string.Empty; Point worldPoint = TransformScreen2World(pt, screenHeight); if (curElement == null || curElement.GetType() != typeof(Polyline)) { if (buttons == MouseButtons.Left) { PolylinePoints.Add(worldPoint); curElement = new Polyline(new Point[] { worldPoint }); result = ClickResult.created; statusMessage = NextMessage; } else if (buttons == MouseButtons.Right) { result = ClickResult.canceled; statusMessage = StartMessage; } } else { Polyline p = curElement as Polyline; if (buttons == MouseButtons.Left) { PolylinePoints.Add(worldPoint); p.AddPoint(worldPoint); result = ClickResult.pointHandled; statusMessage = EndMessage; } else if (buttons == MouseButtons.Right && p.Points.Count < 2) { result = ClickResult.canceled; statusMessage = StartMessage; } else if (buttons == MouseButtons.Right) { result = ClickResult.finished; statusMessage = StartMessage; } } return(result); }
// <summary> /// Das Zeichnen der Linie wird jetzt per Maus-Click betätigt /// </summary> /// <param name="pt">Nimmt die Werte von "e.Location"</param> /// <param name="buttons">Bestimmt, ob es ein rechter oder linker Mouse-Klick ist </param> /// <param name="screenHeight">Höhe der PictureBox</param> /// <param name="curElement"></param> /// <param name="statusMessage">Aktuelle Anzeige von dem Toolstrip"Infos vom System"</param> /// <returns></returns> public static ClickResult Linie_ClickHandler(System.Drawing.Point pt, MouseButtons buttons, int screenHeight, ref Curve curElement, out string statusMessage) { statusMessage = string.Empty; ClickResult result = ClickResult.canceled; Point worldPoint = TransformScreen2World(pt, screenHeight); if (buttons != MouseButtons.Right) { if (curElement == null || curElement.GetType() != typeof(Line)) { curElement = new Line(worldPoint, worldPoint); result = ClickResult.created; statusMessage = EndMessage; } else { (curElement as Line).EndPoint = worldPoint; result = ClickResult.finished; statusMessage = StartMessage; } } return(result); }
/// <summary> /// </summary> /// <param name="centerPoint">Centre du cercle</param> /// <param name="normal">Vecteur normal</param> /// <param name="radius"></param> public Circle(Point centerPoint, Vector normal, double radius) { this.CenterPoint = centerPoint; this.Normal = normal; this.Radius = radius; }
/// <summary> /// Methoden /// </summary> /// <param name="startPoint"></param> /// <param name="endPoint"></param> public Line(Point startPoint, Point endPoint) { this.StartPoint = startPoint; this.EndPoint = endPoint; }
public void InsertPointAt(int position, Point newPoint) { Points.Insert(position, newPoint); }
public void AddPoint(Point newPoint) { Points.Add(newPoint); }