示例#1
0
        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);
 }