Gewusst wie: Erstellen von Figuren aus Linien, Kurven und Formen
Aktualisiert: November 2007
Um eine Figur zu erstellen, legen Sie zunächst einen GraphicsPath an und fügen dem Pfad anschließend durch Aufrufen von Methoden, wie z. B. AddLine oder AddCurve, Grundelemente hinzu.
Beispiel
Die folgenden Codebeispiele erstellen Pfade, die Figuren enthalten:
Im ersten Beispiel wird ein Pfad erstellt, der eine einzelne Figur enthält. Die Figur besteht aus einem einzelnen Bogen. Der Bogen hat einen Krümmungswinkel von -180 Grad, d. h., im Standardkoordinatensystem verläuft er entgegen dem Uhrzeigersinn.
Im zweiten Beispiel wird ein Pfad erstellt, der aus zwei Figuren besteht. Die erste Figur ist ein Bogen, auf den eine Linie folgt. Die zweite Figur besteht aus einer Linie, auf die eine Kurve und eine weitere Linie folgt. Die erste Figur wird offen gelassen, und die zweite ist geschlossen.
Dim path As New GraphicsPath()
path.AddArc(175, 50, 50, 50, 0, -180)
e.Graphics.DrawPath(New Pen(Color.FromArgb(128, 255, 0, 0), 4), path)
GraphicsPath path = new GraphicsPath();
path.AddArc(175, 50, 50, 50, 0, -180);
e.Graphics.DrawPath(new Pen(Color.FromArgb(128, 255, 0, 0), 4), path);
' Create an array of points for the curve in the second figure.
Dim points As Point() = { _
New Point(40, 60), _
New Point(50, 70), _
New Point(30, 90)}
Dim path As New GraphicsPath()
path.StartFigure() ' Start the first figure.
path.AddArc(175, 50, 50, 50, 0, -180)
path.AddLine(100, 0, 250, 20)
' First figure is not closed.
path.StartFigure() ' Start the second figure.
path.AddLine(50, 20, 5, 90)
path.AddCurve(points, 3)
path.AddLine(50, 150, 150, 180)
path.CloseFigure() ' Second figure is closed.
e.Graphics.DrawPath(New Pen(Color.FromArgb(255, 255, 0, 0), 2), path)
// Create an array of points for the curve in the second figure.
Point[] points = {
new Point(40, 60),
new Point(50, 70),
new Point(30, 90)};
GraphicsPath path = new GraphicsPath();
path.StartFigure(); // Start the first figure.
path.AddArc(175, 50, 50, 50, 0, -180);
path.AddLine(100, 0, 250, 20);
// First figure is not closed.
path.StartFigure(); // Start the second figure.
path.AddLine(50, 20, 5, 90);
path.AddCurve(points, 3);
path.AddLine(50, 150, 150, 180);
path.CloseFigure(); // Second figure is closed.
e.Graphics.DrawPath(new Pen(Color.FromArgb(255, 255, 0, 0), 2), path);
Kompilieren des Codes
Die vorangehenden Beispiele sind für die Verwendung mit Windows Forms konzipiert und erfordern PaintEventArgs e, wobei es sich um einen Parameter des Paint-Ereignishandlers handelt.