Bézier-Kurven – Mathematik für Autodesign und Computerschriftarten
Von Andreas Finsterwalder
Betreuung: Lena Bachl und Prof. Dr. B. Forster
Hier geht es zum interaktiven Applet!
Über Jahrhunderte hinweg waren Lineale, Zirkel und Schablonen die einzigen Hilfsmittel, die Designer und technische Zeichnerinnen zur Verfügung hatten. In der Industrie wurde jedoch eine hohe Genauigkeit bei der Anfertigung von gekrümmten Flächen notwendig. Zeichnerische Ungenauigkeiten führten dazu, dass manche Produkte von der erwünschten Form abwichen und dadurch unbrauchbar waren. Als Lösung dafür entwickelten Paul de Faget de Casteljau bei Citroën und Pierre Bézier bei Renault um 1960 unabhängig voneinander die Bézier-Kurven. Mit ihnen lassen sich gekrümmte Kurven mathematisch genau beschreiben.
Was ist eine Bézier-Kurve?
Eine Bézier-Kurve ist anschaulich gesprochen eine gebogene Linie mit einer „schönen“ mathematischen Beschreibung. Festgelegt wird sie durch eine Folge von Kontrollpunkten.
Im Applet sind die Kontrollpunkte durch große graue Punkte gekennzeichnet, welche Du durch Klicken frei auf der Fläche wählen kannst. Verbunden sind die Punkte über Strecken, wodurch die Folge an Kontrollpunkten deutlich wird. Die Folge von Kontrollpunkten kannst Du durch Doppelklick auf den letzten Punkt oder durch den Button „Kurve fertigstellen“ beenden. Dann berechnet das Programm die Bézier-Kurve.
Die durch ihre Kontrollpunkte festgelegte Bézier-Kurve lässt sich mit sogenannten Fadenspannbildern veranschaulichen. Dazu unterteilt man die Strecken zwischen den Kontrollpunkten in jeweils gleich viele Teilstücke. Diese Teilstücke müssen innerhalb der jeweiligen Strecke gleich groß sein. Nun „spannt man die Fäden“ der Reihe nach zwischen den Endpunkten der Teilstücke, wie in der folgender Abbildung dargestellt. Die in Rot dargestellte Bézier-Kurve wird als sogenannte Hüllkurve sichtbar. Die Fäden bilden dabei die Tangenten an die Bézier-Kurve, sie umhüllen diese also sprichwörtlich.
Hier wurden die Strecken in zehn Teilstücke unterteilt. In je mehr Teilstücke man die Strecken unterteilt, desto feiner zeigt sich die Bézier-Kurve.
Im Applet kannst Du den Feinheitsgrad der Bézier-Kurve über den Parameter n regeln, welcher die Anzahl an Teilstücken pro Strecke angibt. Aktivierst Du zusätzlich das Kästchen „Fadenspannbilder einzeichnen“, so sieht man diese.
Bilder in Pixelformaten wie jpg oder png können nicht beliebig skaliert werden, da nur eine begrenzte Anzahl an Pixeln abgespeichert ist. Häufig wünscht man sich schematischen Darstellungen, wie zum Beispiel technischen Zeichnungen, beliebig in der Größe variieren zu können. Daher hat man die sogenannten Skalierbaren Vektorgrafiken (SVG) erfunden. Dabei werden die Bildinhalte nicht durch einzelne Pixel, sondern durch mathematische Beschreibungen gespeichert. Für Krümmungen verwendet man dabei Bézier-Kurven. Sie sind besonders speichersparend, da man nur die Folge ihrer Kontrollpunkte speichern muss.
Tipp: Die im Applet gezeichneten Bézier-Kurven kannst Du als SVG speichern.
Eine weitere Anwendung finden Bézier-Kurven in der Darstellung von Computerschriftarten. Dazu werden die Umrisse der einzelnen Buchstaben oder Symbole durch Bézier-Kurven beschrieben. Kompliziertere Formen lassen sich auch aus mehreren Bézier-Kurven niedrigeren Grades (der Grad einer Bézier-Kurve entspricht der Anzahl ihrer Kontrollpunkte) zusammensetzen. Erst wenn die gewünschte Skalierung feststeht, werden diese Umrisse mit schwarzen bzw. farbigen Pixeln befüllt. Als Resultat sind die Zeichen, zum Beispiel je nach Schriftgröße oder Seitenzoom, beliebig skalierbar und stets in bestmöglicher Qualität darstellbar.
In der rechten Abbildung siehst Du den Buchstaben „S“ dargestellt durch mehrere Bézier-Kurven gegeben durch jeweils drei Kontrollpunkte.
Mit dem de Casteljau-Algorithmus lassen sich Bézier-Kurven an jeder Stelle berechnen. Der Algorithmus errechnet rekursiv aus der Folge an Kontrollpunkten und dem Parameter t ∈ [0,1] einen Punkt der Bézier-Kurve. Rekursiv bedeutet: In jedem Rekursionsschritt wird aus der „alten“ Folge an Punkten eine „neue“ Folge an Punkten bestimmt, so dass auf der Strecke zwischen zwei „alten“ benachbarten Punkten jeweils ein „neuer“ Punkt liegt. Der Parameter t legt dabei fest, wo auf der Strecke der „neue“ Punkt liegt. Besteht die „neue“ Folge an Punkten schließlich nur noch aus einem Punkt, wird der Algorithmus beendet. Dieser Punkt liegt auf der Bézier-Kurve. Führt man den Algorithmus für alle t ∈ [0,1] durch, so ergibt sich die komplette Bézier-Kurve.
Im Applet siehst Du die Schritte des Algorithmus, wenn Du das Kästchen „De-Casteljau-Algorithmus visualisieren“ anklickst. Die Rekursionsschritte sind in blau, der errechnete Punkt auf der Bézier-Kurve ist als roter Punkt gekennzeichnet. Verändere den Parameter t. Dann siehst Du, wie verschiedene Punkte auf der Bézier-Kurve bestimmt werden.
Text von Andreas Finsterwalder und Elena Mille