Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Pfade werden durch Kombinieren von Linien, Rechtecken und einfachen Kurven gebildet. Wie bereits unter Übersicht über Vektorgrafiken erklärt, haben sich die folgenden Grundbausteine als die sinnvollsten Elemente zum Zeichnen von Bildern erwiesen:
- Linien
- Rechtecke
- Ellipsen
- Bögen
- Polygone
- Kardinale Splines
- Bézier-Splines
In GDI+ können Sie mit dem GraphicsPath-Objekt eine Sequenz solcher Bausteine zu einer einzigen Einheit zusammenfassen. Die gesamte Sequenz aus Linien, Rechtecken, Polygonen und Kurven kann dann mit einem einzigen Aufruf der DrawPath-Methode der Graphics-Klasse gezeichnet werden. Die folgende Abbildung zeigt einen Pfad, der durch Kombination einer Linie mit einem Bogen, einem Bézier-Spline und einem kardinalen Spline erstellt wird.
.gif)
Die GraphicsPath-Klasse stellt die folgenden Methoden zum Erstellen einer zu zeichnenden Sequenz aus Elementen bereit: AddLine, AddRectangle, AddEllipse, AddArc, AddPolygon, AddCurve (für kardinale Splines) und AddBezier. Jede dieser Methoden ist überladen, d. h. jede Methode unterstützt mehrere verschiedene Parameterlisten. Eine Variante der AddLine-Methode erhält z. B. vier ganze Zahlen, während eine andere Variante der AddLine-Methode zwei Point-Objekte erhält.
Die Methoden zum Hinzufügen von Linien, Rechtecken und Bézier-Splines zu einem Pfad haben mehrere Begleitmethoden, die dem Pfad mehrere Elemente in einem einzigen Aufruf hinzufügen: AddLines, AddRectangles und AddBeziers. Darüber hinaus weisen die AddCurve- und die AddArc-Methode die Begleitmethoden AddClosedCurve und AddPie auf, mit denen Sie dem Pfad eine geschlossene Kurve oder ein Kreissegment hinzufügen können.
Um einen Pfad zu zeichnen, benötigen Sie ein Graphics-Objekt, ein Pen-Objekt und ein GraphicsPath-Objekt. Das Graphics-Objekt stellt die DrawPath-Methode bereit. Das Pen-Objekt speichert Attribute, z. B. Linienfarbe und -stärke, für die Linie, mit der der Pfad dargestellt wird. Das GraphicsPath-Objekt speichert die Sequenz von Linien und Kurven, die den Pfad bilden. Das Pen-Objekt und das GraphicsPath-Objekt werden als Argumente an die DrawPath-Methode übergeben. Im folgenden Beispiel wird ein Pfad gezeichnet, der aus einer Linie, einer Ellipse und einem Bézier-Spline besteht:
myGraphicsPath.AddLine(0, 0, 30, 20)
myGraphicsPath.AddEllipse(20, 20, 20, 40)
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10)
myGraphics.DrawPath(myPen, myGraphicsPath)
[C#]
myGraphicsPath.AddLine(0, 0, 30, 20);
myGraphicsPath.AddEllipse(20, 20, 20, 40);
myGraphicsPath.AddBezier(30, 60, 70, 60, 50, 30, 100, 10);
myGraphics.DrawPath(myPen, myGraphicsPath);
Die folgende Abbildung zeigt den Pfad.
.gif)
Abgesehen von Linien, Rechtecken und Kurven können Sie einem Pfad auch Pfade hinzufügen. Dadurch können Sie vorhandene Pfade zu komplexen Pfaden zusammenfügen.
myGraphicsPath.AddPath(graphicsPath1, False)
myGraphicsPath.AddPath(graphicsPath2, False)
[C#]
myGraphicsPath.AddPath(graphicsPath1, false);
myGraphicsPath.AddPath(graphicsPath2, false);
Zwei weitere Elemente können einem Pfad hinzugefügt werden: Zeichenfolgen und Kreissegmente. Ein Kreissegment ist ein Teil der Innenfläche einer Ellipse. Im folgenden Beispiel wird ein Pfad aus einem Bogen, einem kardinalen Spline, einer Zeichenfolge und einem Kreissegment erstellt:
Dim myGraphicsPath As New GraphicsPath()
Dim myPointArray As Point() = { _
New Point(5, 30), _
New Point(20, 40), _
New Point(50, 30)}
Dim myFontFamily As New FontFamily("Times New Roman")
Dim myPointF As New PointF(50, 20)
Dim myStringFormat As New StringFormat()
myGraphicsPath.AddArc(0, 0, 30, 20, - 90, 180)
myGraphicsPath.StartFigure()
myGraphicsPath.AddCurve(myPointArray)
myGraphicsPath.AddString("a string in a path", myFontFamily, _
0, 24, myPointF, myStringFormat)
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110)
myGraphics.DrawPath(myPen, myGraphicsPath)
[C#]
GraphicsPath myGraphicsPath = new GraphicsPath();
Point[] myPointArray = {
new Point(5, 30),
new Point(20, 40),
new Point(50, 30)};
FontFamily myFontFamily = new FontFamily("Times New Roman");
PointF myPointF = new PointF(50, 20);
StringFormat myStringFormat = new StringFormat();
myGraphicsPath.AddArc(0, 0, 30, 20, -90, 180);
myGraphicsPath.StartFigure();
myGraphicsPath.AddCurve(myPointArray);
myGraphicsPath.AddString("a string in a path", myFontFamily,
0, 24, myPointF, myStringFormat);
myGraphicsPath.AddPie(230, 10, 40, 40, 40, 110);
myGraphics.DrawPath(myPen, myGraphicsPath);
Die folgende Abbildung zeigt den Pfad. Beachten Sie, dass ein Pfad nicht verbunden sein muss. Der Bogen, der kardinale Spline, die Zeichenfolge und das Kreissegment sind getrennte Elemente.
.png)