public static void PenBrushTool(List <Point> vertices, List <Line> edges, List <ShapeElements> shapeElements, Graphics graph, Pen pen, Panel panel, SenderMethod sender) { if (sender == SenderMethod.PenButtonClick) { RedrawShape(graph, shapeElements, vertices, pen); } if (sender == SenderMethod.DrawPanelClick) { PlacePoint(vertices, graph, panel); if (vertices.Count > 1) { Line line = new Line(vertices[vertices.Count - 2], vertices[vertices.Count - 1]); line.IndexInVertexList = new int[] { vertices.Count - 2, vertices.Count - 1 }; if (!LineUtil.ShapeIntersection("Es können keine schneidenen Kanten eingefügt werden", edges, line)) { line.Draw(pen, graph, vertices, shapeElements); edges.Add(line); shapeElements.Add(line); } else { vertices.Remove(vertices[vertices.Count - 1]); } } } }
public static void Escape(List <Point> corners, List <Line> edges, Graphics graph, Pen pen) { corners.Add(corners[0]); Line Edge = new Line(corners[corners.Count - 2], corners[corners.Count - 1]); bool shapeValid = LineUtil.ShapeIntersection("Das Polygon kann nicht vollendet werden. Überprüfen Sie ob der letzte Punkt den ersten Punkt erreicht.", edges, Edge); if (shapeValid) { graph.DrawLine(pen, corners[corners.Count - 2], corners[corners.Count - 1]); } else { corners.RemoveAt(corners.Count - 1); } }
public static void StrgY(List <Point> corners, List <Line> edges, Panel drawPanel, Graphics graph, Pen pen) { LineUtil.RedoLine(pen, graph, corners, edges); }