Freigeben über


Erstellen von Abbildungen Figuren aus Linien, Kurven und Formen

Um einen Pfad zu erstellen, erstellen Sie ein GraphicsPath-Objekt , und rufen Sie dann Methoden wie AddLine und AddCurve auf, um dem Pfad Primitive hinzuzufügen.

Im folgenden Beispiel wird ein Pfad mit einem einzelnen Bogen erstellt. Der Bogen hat einen Kehrwinkel von –180 Grad, der im Standardkoordinatensystem gegen den Uhrzeigersinn ist.

Pen pen(Color(255, 255, 0, 0));
GraphicsPath path;
path.AddArc(175, 50, 50, 50, 0, -180);
graphics.DrawPath(&pen, &path);

Im folgenden Beispiel wird ein Pfad mit zwei Abbildungen erstellt. Die erste Figur ist ein Bogen gefolgt von einer Linie. Die zweite Abbildung ist eine Linie gefolgt von einer Kurve, gefolgt von einer Linie. Die erste Figur ist offen, die zweite Figur geschlossen.

Point points[] = {Point(40, 60), Point(50, 70), Point(30, 90)};

Pen pen(Color(255, 255, 0, 0), 2);
GraphicsPath path;

// The first figure is started automatically, so there is
// no need to call StartFigure here.
path.AddArc(175, 50, 50, 50, 0.0f, -180.0f);
path.AddLine(100, 0, 250, 20);

path.StartFigure();
path.AddLine(50, 20, 5, 90);
path.AddCurve(points, 3);
path.AddLine(50, 150, 150, 180);
path.CloseFigure();

graphics.DrawPath(&pen, &path);

Zusätzlich zum Hinzufügen von Linien und Kurven zu Pfaden können Sie geschlossene Formen hinzufügen: Rechtecke, Auslassungspunkte, Kreise und Polygone. Im folgenden Beispiel wird ein Pfad mit zwei Zeilen erstellt, einem Rechteck und einer Ellipse. Der Code verwendet einen Stift zum Zeichnen des Pfads und einen Pinsel, um den Pfad zu füllen.

GraphicsPath path;
Pen          pen(Color(255, 255, 0, 0), 2);
SolidBrush   brush(Color(255, 0, 0, 200));

path.AddLine(10, 10, 100, 40);
path.AddLine(100, 60, 30, 60);
path.AddRectangle(Rect(50, 35, 20, 40));
path.AddEllipse(10, 75, 40, 30);

graphics.DrawPath(&pen, &path);
graphics.FillPath(&brush, &path);

Der Pfad im vorherigen Beispiel enthält drei Abbildungen. Die erste Abbildung besteht aus den beiden Linien, die zweite aus dem Rechteck und die dritte aus der Ellipse. Selbst wenn keine Aufrufe von GraphicsPath::CloseFigure oder GraphicsPath::StartFigure vorhanden sind, gelten intrinsisch geschlossene Formen wie Rechtecke und Ellipsen als separate Figuren.