Freigeben über


Kardinale Splines

Ein kardinaler Spline ist eine Abfolge einzelner Kurven, die miteinander verbunden werden, um eine größere Kurve zu bilden. Der Spline wird durch ein Array von Punkten und einen Spannungsparameter angegeben. Eine kardinaler Spline durchläuft glatt jeden Punkt im Array. Es gibt keine scharfen Ecken und keine abrupten Änderungen bei der Enge der Kurve. Die folgende Abbildung zeigt eine Reihe von Punkten und einen kardinalen Spline, der jeden Punkt in der Gruppe durchläuft.

Abbildung einer Kardinalspline, die sechs definierte Punkte durchläuft

Ein physischer Spline ist ein dünnes Holzstück oder ein anderes flexibles Material. Vor der Einführung mathematischer Splines haben Designer physische Splines verwendet, um Kurven zu zeichnen. Ein Designer würde den Spline auf einem Papierstück platzieren und an einer bestimmte Gruppe von Punkten verankern. Der Designer könnte dann eine Kurve erstellen, indem er mit einem Stift entlang des Splines zeichnet. Je nach den Eigenschaften des physischen Splines könnte eine bestimmte Gruppe von Punkten eine Vielzahl von Kurven liefern. So würde z. B. ein Spline mit hohem Biegewiderstand eine andere Kurve erzeugen als ein extrem flexibler Spline.

Die Formeln für mathematische Splines basieren auf den Eigenschaften flexibler Stäbe, sodass die von mathematischen Splines erzeugten Kurven den Kurven ähneln, die früher mit physischen Splines erzeugt wurden. Ebenso wie physische Splines mit unterschiedlichen Spannungen verschiedene Kurven durch eine vorgegebene Gruppe von Punkten erzeugen, erzeugen mathematische Splines mit unterschiedlichen Werten für den Spannungsparameter verschiedene Kurven durch eine vorgegebene Gruppe von Punkten. Die folgende Abbildung zeigt vier kardinale Splines, die durch dieselbe Gruppe von Punkten laufen. Die Spannung wird für jeden Spline angezeigt. Beachten Sie, dass eine Spannung von 0 einer unendlichen physischen Spannung entspricht, die die Kurve zwingt, den kürzesten Weg (gerade Linien) zwischen Punkten zu nehmen. Eine Spannung von 1 entspricht keiner vorhandenen physischen Spannung, sodass der Spline den Weg der geringsten Gesamtbiegung nehmen kann. Mit Spannungswerten größer als 1 verhält sich die Kurve wie eine komprimierte Feder, und wird gezwungen, einen längeren Weg zu nehmen.

Abbildung, die vier Kardinalsplines über dieselben drei Punkte zeigt

Beachten Sie, dass die vier Splines in der vorherigen Abbildung dieselbe tangente Linie am Startpunkt aufweisen. Die Tangente ist die Linie, die vom Startpunkt bis zum nächsten Punkt entlang der Kurve gezeichnet wird. Ebenso ist die gemeinsame Tangente am Endpunkt die Linie, die vom Endpunkt bis zum vorherigen Punkt der Kurve gezogen wird.

Um einen Kardinal-Spline zu zeichnen, benötigen Sie ein Graphics-Objekt , ein Pen-Objekt und ein Array von Point-Objekten . Das Graphics-Objekt stellt die DrawCurve-Methode bereit, die den Spline zeichnet, und das Pen-Objekt speichert Attribute des Splines, z. B. Linienbreite und Farbe. Das Array von Point-Objekten speichert die Punkte, durch die die Kurve übergeben wird. Im folgenden Beispiel wird eine Kardinalspline geordnet, die die Punkte in myPointArray durchläuft. Der dritte Parameter ist die Spannung.

myGraphics.DrawCurve(&myPen, myPointArray, 3, 1.5f);