Geometrie: High Order Surfaces
25. April 2004 / von Frank / Seite 5 von 13
Bézierkurven (Forts.)
Um den Punkt auf der Kurve rechnerisch zu erhalten, wird klar, dass die obige Hintereinanderausführung nach einen rekursiven Algorithmus verlangt: den Algorithmus von de Casteljau. Die Formel wollen wir natürlich nicht ungenannt lassen:
am besten am obigen Bespiel kurz verdeutlicht:
(einfach nur Lineare Interpolation)
Komplexeres Beispiel: 6 Kontrollpunkte - Kurve 5. Grades
Blauen Kurvenpunkt durch t=1/2 erhalten
Soll eine Bézierkurve gezeichnet werden, wird jedoch der de Casteljau Unterteilungsalgorithmus verwendet, der zwar recht einfach ist (und analog funktioniert), hier jetzt aber nicht weiter interessiert - genauso wenig wie die explizite Darstellung dieser Kurven durch Bernsteinpolynome. Viel interessanter erscheint die Frage: Wie verbinde ich zwei Kurvenstücke möglichst "gut"?
Für eine Bézierkurve gilt, dass sie durch Anfangs und Endpunkt geht - also sollte zumindest Endpunkt des ersten Kurvenstücks und Anfangspunkt des zweiten Kurvenstücks zusammenfallen. Das reicht jedoch nicht, damit der Übergang ohne einen Knick ist. Wollen wir einen glatten Übergang, sollte zumindest die Tangente beider Kurven in dem gemeinsamen Punkt übereinstimmen. (Für die Mathefans: Hier spricht man nicht gleich von C1 Stetigkeit / Übergang, sondern von GC1 - geometrischer C1 Übergang.) Eventuell wurde es auch schon auf den Bildern erahnt, dass Anfangs und Endstück des Kontrollpolygons auch die jeweiligen Tangenten in den beiden Endpunkten sind.
die im vorletzten Schritt der wiederholten linearen Interpolation
erhaltene Gerade ist Tangente an die Kurve
Soll also ein Übergang für unsere Verhältnisse einigermaßen glatt sein, reicht es, wenn der gemeinsame Kontrollpunkt und die beiden jeweils nächsten Kontrollpunkte kollinear sind - um nicht zu sagen: auf einer Geraden liegen. Somit stimmen die Tangenten überein (wir haben einen GC1 Übergang - für C1 müssen zusätzliche Bedingungen erfüllt sein, da dort die beiden parametrisierten Kurven den gleichen 1. Ableitungsvektor haben müssen, jedoch ... ).
vier zusammengesetzte Bézierkurven zweiten Grades (Parabelsegmente)
(mit tangentialen Übergang)
Für 20 Punkte scheint es kaum sinnvoll, eine Kurve 19ten Grades zu verwenden. Die Änderung eines Kontrollpunktes würde eine Veränderung des gesamten Kurvenverlaufs zur Folge haben. Also setzt man mehrere Kurvensegmente niedrigen Grades zusammen. Damit kommen wir im weiterem zu den B-Splines.