Freigeben über


Vorgehensweise: Zeichnen von kardinalen Splines

Ein kardinaler Spline ist eine Kurve, die eine bestimmte Reihe von Punkten glatt durchläuft. Um einen kardinalen Spline zu zeichnen, erstellen Sie ein Graphics-Objekt und übergeben die Adresse eines Arrays von Punkten an die DrawCurve-Methode.

Zeichnen eines glockenförmigen kardinalen Splines

  • Im folgenden Beispiel wird ein glockenförmiger kardinaler Spline gezeichnet, der fünf angegebene Punkte durchläuft. Die folgende Abbildung zeigt die Kurve und fünf Punkte.

    Diagramm: Glockenförmiger kardinaler Spline

Point[] points = {
   new Point(0, 100),
   new Point(50, 80),
   new Point(100, 20),
   new Point(150, 80),
   new Point(200, 100)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);
Dim points As Point() = { _
   New Point(0, 100), _
   New Point(50, 80), _
   New Point(100, 20), _
   New Point(150, 80), _
   New Point(200, 100)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)

Zeichnen eines geschlossenen kardinalen Splines

  • Verwenden Sie die DrawClosedCurve-Methode der Graphics-Klasse, um einen geschlossenen kardinalen Spline zu zeichnen. In einem geschlossenen kardinalen Spline wird die Kurve durch den letzten Punkt im Array fortgesetzt und mit dem ersten Punkt im Array verbunden. Im folgenden Beispiel wird ein geschlossener kardinaler Spline gezeichnet, der sechs angegebene Punkte durchläuft. Die folgende Abbildung zeigt den geschlossenen Spline zusammen mit den sechs Punkten:

Diagramm: Geschlossener kardinaler Spline

Point[] points = {
   new Point(60, 60),
   new Point(150, 80),
   new Point(200, 40),
   new Point(180, 120),
   new Point(120, 100),
   new Point(80, 160)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);
Dim points As Point() = { _
   New Point(60, 60), _
   New Point(150, 80), _
   New Point(200, 40), _
   New Point(180, 120), _
   New Point(120, 100), _
   New Point(80, 160)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawClosedCurve(pen, points)

Ändern der Krümmung eines kardinalen Splines

  • Ändern Sie die Art, wie sich ein kardinaler Spline krümmt, indem Sie ein Spannungsargument an die DrawCurve-Methode übergeben. Im folgenden Beispiel werden drei kardinale Splines gezogen, die denselben Satz von Punkten durchlaufen. Die folgende Abbildung zeigt die drei Splines zusammen mit ihren Spannungswerten. Beachten Sie, dass die Punkte bei einer Spannung von 0 durch gerade Linien verbunden werden.

Diagramm: Drei kardinale Splines

Point[] points = {
   new Point(20, 50),
   new Point(100, 10),
   new Point(200, 100),
   new Point(300, 50),
   new Point(400, 80)};

Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);
Dim points As Point() = { _
   New Point(20, 50), _
   New Point(100, 10), _
   New Point(200, 100), _
   New Point(300, 50), _
   New Point(400, 80)}

Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points, 0.0F)
e.Graphics.DrawCurve(pen, points, 0.6F)
e.Graphics.DrawCurve(pen, points, 1.0F)

Kompilieren des Codes

Die obigen Beispiele sind für die Verwendung mit Windows Forms konzipiert und erfordern PaintEventArgse, einen Parameter des Paint-Ereignishandlers.

Siehe auch