Freigeben über


Anleitung: Kardinal-Splines zeichnen

Eine Kardinalspline ist eine Kurve, die reibungslos durch einen bestimmten Satz von Punkten verläuft. Um eine Kardinalspline zu zeichnen, erstellen Sie ein Graphics Objekt, und übergeben Sie die Adresse eines Arrays von Punkten an die DrawCurve Methode.

Zeichnen einer Bell-Shaped Kardinalspline

  • Das folgende Beispiel zeichnet eine glockenförmige Kardinalspline, die fünf bestimmte Punkte durchläuft. Die folgende Abbildung zeigt die Kurve und fünf Punkte.

    Diagramm, das eine glockenförmige Kardinalspline zeigt.

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 Kardinalsplines

  • Verwenden Sie die DrawClosedCurve Methode der Graphics Klasse, um eine geschlossene Kardinalspline zu zeichnen. In einer geschlossenen Kardinalspline wird die Kurve durch den letzten Punkt im Array fortgesetzt und verbindet sich mit dem ersten Punkt im Array. Das folgende Beispiel zeichnet eine geschlossene Kardinalspline, die sechs bestimmte Punkte durchläuft. Die folgende Abbildung zeigt die geschlossene Spline zusammen mit den sechs Punkten:

Diagramm, das eine geschlossene Kardinalspline zeigt.

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 Kurve einer Kardinalspline

  • Ändern Sie die Art und Weise, wie ein Kardinalspline gekrümmt wird, indem Sie einen Spannungsparameter an die DrawCurve Methode übergeben. Das folgende Beispiel zeichnet drei kardinale Splines, die durch den gleichen Satz von Punkten laufen. Die folgende Abbildung zeigt die drei Splines zusammen mit ihren Spannungswerten. Beachten Sie, dass die Punkte, wenn die Spannung 0 ist, durch gerade Linien verbunden sind.

Diagramm, das drei Kardinal-Splines zeigt.

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)

Code kompilieren

Die vorstehenden Beispiele sind für die Verwendung mit Windows Forms konzipiert und erfordern PaintEventArgseeinen Parameter des Paint Ereignishandlers.

Siehe auch