GraphicsPath::AddCurve(constPoint*,INT,INT,REAL)-Methode (gdipluspath.h)
Die GraphicsPath::AddCurve-Methode fügt der aktuellen Abbildung dieses Pfads eine Kardinalspline hinzu.
Syntax
Status AddCurve(
[in] const Point *points,
[in] INT count,
[in] INT offset,
[in] INT numberOfSegments,
[in] REAL tension
);
Parameter
[in] points
Typ: const Point*
Zeiger auf ein Array von Punkten, die die Kardinalspline definieren. Die Kardinalspline ist eine Kurve, die eine Teilmenge (angegeben durch die Offset - und numberOfSegments-Parameter ) der Punkte im Array durchläuft.
[in] count
Typ: INT
Ganzzahl, die die Anzahl der Elemente im Punktarray angibt.
[in] offset
Typ: INT
Eine ganze Zahl, die den Index des Arrayelements angibt, das als erster Punkt der Kardinalspline verwendet wird.
[in] numberOfSegments
Typ: INT
Eine ganze Zahl, die die Anzahl der Segmente im Kardinalspline angibt. Segmente sind die Kurven, die aufeinander folgende Punkte im Array verbinden.
[in] tension
Typ: REAL
Nicht negative reelle Zahl, die die Länge der Kurve und die Art der Kurve steuert. Der Wert 0 gibt an, dass der Spline eine Sequenz gerader Liniensegmente ist. Wenn der Wert zunimmt, wird die Kurve voller.
Rückgabewert
Typ: Status
Wenn die Methode erfolgreich ist, gibt sie OK zurück, ein Element der Status-Enumeration .
Wenn die Methode fehlschlägt, wird eines der anderen Elemente der Status-Enumeration zurückgegeben.
Hinweise
Sie sollten eine Kopie des Punktearrays aufbewahren, wenn diese Punkte später benötigt werden. Das GraphicsPath-Objekt speichert die an die AddClosedCurve-Methode übergebenen Punkte nicht. Stattdessen konvertiert er den Kardinalspline in eine Sequenz von Bézier-Splines und speichert die Punkte, die diese Bézier-Splines definieren. Sie können das ursprüngliche Array von Punkten nicht aus dem GraphicsPath-Objekt abrufen.
Beispiele
Im folgenden Beispiel wird ein GraphicsPath-Objektpfad erstellt, dem Pfad eine kardinale Spline hinzugefügt und dann der Pfad zeichnet. Die Spline wird aus den 2 bis 6 indizierten Punkten in einem Array von acht Punkten erstellt.
VOID AddCurveExample2(HDC hdc)
{
GraphicsPath path;
Graphics graphics(hdc);
Point pts[] = {Point(50, 50),
Point(70, 80),
Point(100, 100),
Point(130, 40),
Point(150, 90),
Point(180, 30),
Point(210, 120),
Point(240, 80)};
path.AddCurve(
pts,
8, // There are eight points in the array.
2, // Start at the point with index 2.
4, // Four segments. End at the point with index 6.
1.0f);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawPath(&pen, &path);
// Draw all eight points in the array.
SolidBrush brush(Color(255, 255, 0, 0));
for(INT j = 0; j <= 7; ++j)
graphics.FillEllipse(&brush, pts[j].X - 3, pts[j].Y - 3, 6, 6);
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP, Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | gdipluspath.h (include Gdiplus.h) |
Bibliothek | Gdiplus.lib |
DLL | Gdiplus.dll |