Bézierkurve

Die Bézierkurve [] ist eine parametrisch modellierte Kurve, die ein wichtiges Werkzeug bei der Beschreibung von Freiformkurven und -flächen darstellt.

In der Computergrafik finden Bézierkurven wegen ihrer optischen Eleganz und der verhältnismäßig leichten mathematischen Handhabbarkeit häufig Anwendung. Sie werden zur Definition von Kurven und Flächen in Vektorgrafiken genutzt. Mögliche Anwendungsfälle finden sich z. B. im Computer Aided Design, bei der Erstellung von Illustrationen (siehe z. B. SVG) oder der Beschreibung von Schrifttypen (z. B. Postscript, Type1, TrueType und CFF-OpenType).

Die Bézierkurve wurde Anfang der 1960er Jahre unabhängig voneinander von Pierre Bézier bei Renault und Paul de Casteljau bei Citroën für Computer-Aided Design (computerunterstützte Konstruktion) entwickelt. Paul de Casteljau gelang zwar die Entdeckung früher, Citroën hielt seine Forschungen jedoch bis zum Ende der 1960er Jahre als Betriebsgeheimnis zurück.

Verallgemeinerungen des Konzepts der Bézierkurven führen zu den Bézierflächen.

Motivation, Definition 
Numerisch einfache Kurven in der Ebene sind solche, die mit Hilfe
einer Parameterdarstellung  beschrieben werden,
wobei  und  Polynome in  sind.
Ist
,

und setzt man , so lässt sich die Kurve übersichtlicher durch

beschreiben.

Im Allgemeinen lässt sich direkt aus den Koeffizienten-Punkten  nur wenig über den Kurvenverlauf aussagen. Lediglich  (Anfangspunkt der Kurve) und  (Tangentialvektor der Kurve an ) haben konkrete geometrische Bedeutungen. Dies ändert sich, wenn man die Polynome  nicht in der Monom-Basis
, sondern in der folgenden Bernsteinbasis
 darstellt:

Es sei nun  festgewählt und die Vektoren  beschreiben ein ebenes oder räumliches Polygon. Dann heißt die Darstellung

eine Bézierkurve vom (maximalen) Grad . Die Punkte 
nennt man Kontrollpunkte der Bézierkurve.

Eigenschaften der Bernsteinpolynome:

 für  für 
 Das Bernsteinpolynom  hat genau ein Maximum und zwar an der Stelle  D. h. eine leichte Veränderung des Punktes  hat nur in der Umgebung von  eine wesentliche Veränderung der Kurve zur Folge.

Eigenschaften einer Bézierkurve:
 ist der Anfangs-,  der Endpunkt
 ist die Richtung der Tangente im Punkt  ist die Richtung der Tangente im Punkt 
 Das Polygon  gibt einen ungefähren Verlauf der Kurve an.

Weitere Eigenschaften der Bernsteinbasis 
Für Untersuchungen von Bézierkurven sind die folgenden Eigenschaften nützlich:

 Beziehung zwischen der Bernstein- und der Monom-Basis
 (MB)
 Rekursion
 (R) 
 Skalierung
 (S) 
 Ableitung
 (A) 
 (Man beachte, dass  ist.)
 Produkt
 (P)

Weitere Eigenschaften einer Bézierkurve 

In der Literatur werden noch weitere Eigenschaften einer Bézierkurve aufgelistet:

 Die Kurve liegt innerhalb der konvexen Hülle des Kontrollpolygons. Dies folgt daraus, dass die Bernsteinpolynome vom Grad  eine Zerlegung der Eins sind:

 Die ersten Summanden des Taylorpolynoms bei  bzw. bei  lauten für :

 Eine Gerade schneidet eine Bézierkurve höchstens so oft, wie sie ihr Kontrollpolygon schneidet (die Kurve ist variationsreduzierend, bzw. hat eine beschränkte Schwankung).
 Eine affine Transformation (Verschiebung, Skalierung, Rotation, Scherung) kann auf die Bézierkurve durch Transformation des Kontrollpolygons angewendet werden („affine Invarianz“).
 Liegen alle Kontrollpunkte auf einer Geraden, so wird die Bézierkurve zu einer Strecke (Vorteil gegenüber der Polynominterpolation).
 Der Einfluss eines Kontrollpunktes auf die Kurve ist global. Das heißt: Verschiebt man einen Punkt, verändert sich die gesamte Kurve. Daher verwendet man in der Praxis meist Splines, zusammengesetzte Kurven festen Grades, die stetig ineinander übergehen.
 Eine Bézierkurve kann immer in zwei Bézierkurven gleicher Ordnung geteilt werden, wobei sich die neuen Kontrollpunkte aus den alten mit Hilfe des De-Casteljau-Algorithmus ergeben (s. Abschnitt Teilung einer Bézierkurve).

Der De-Casteljau-Algorithmus 

Höhere Potenzen von  auszurechnen ist numerisch instabil. Der folgende Algorithmus führt deshalb die Berechnung eines Kurvenpunktes auf wiederholte lineare Interpolation zurück. In jedem Schritt wird mittels linearer Interpolation ein neues um 1 kürzeres Polygon berechnet (s. Bild). Bei der letzten Interpolation entsteht schließlich der Kurvenpunkt:

Für das Polygon  im  (oder
) und einem  definiert man rekursiv für jedes
 das Polygon
  erzeugt. Dabei sei .

Das Polygon der Stufe  ist identisch mit dem Ausgangspolygon, das Polygon der Stufe  ist ein Punkt, der Kurvenpunkt.

Aus der Rekursionseigenschaft (R) der Bernsteinpolynome folgt

 für 
(Beweis mit Hilfe vollständiger Induktion über r.)
Also ist
 
die Bézierkurve mit dem Kontrollpolygon .
Diese Methode, einen Punkt der Bézierkurve durch lineare Interpolationen
zu bestimmen, heißt De-Casteljau-Algorithmus.

Wie für ein  mit Hilfe des Casteljau-Algorithmus aus dem Kontrollpolygon die Zwischenpolygone und schließlich der Punkt der Bézierkurve entsteht, zeigt die Abbildung für . Die neuen Punkte teilen immer die alten Strecken, auf denen sie liegen, im gleichen Verhältnis .

Bézierkurven bis zum dritten Grad 

Lineare Bézierkurven :

Zwei Kontrollpunkte  und  bestimmen eine gerade Strecke zwischen diesen beiden Punkten. Der Verlauf dieser linearen Bézier„kurve“ wird beschrieben durch

Quadratische Bézierkurven :

Eine quadratische Bézierkurve ist der Pfad, der durch die Funktion  für die Punkte ,  und  beschrieben wird:

Die letzte Zeile zeigt: Eine quadratische Bézierkurve ist eine Parabel.

Mit Hilfe des De-Casteljau-Algorithmus ausgedrückt: 

Kubische Bézierkurven :

Kubische Bézierkurven sind in der Praxis von großer Bedeutung, da sowohl B-Spline-Kurven als auch NURBS stückweise in kubische Bézierkurven umgewandelt werden, um dann effizient mit dem De-Casteljau-Algorithmus gezeichnet zu werden. Selbiges gilt für hermitesche Splines, die in ihrer kubischen Form vor allem in der Computeranimation zur Interpolation zwischen Keyframes verwendet werden.

Mit Hilfe des De-Casteljau-Algorithmus ausgedrückt:

Vergleich der Kurvendarstellungen 
Polynomiale Kurven (d. h. die Koordinaten sind Polynome bzgl. ) lassen sich in der Monom-Basis, der Bernsteinbasis und mit Hilfe des De-Casteljau-Algorithmus (fortgesetzte lineare Interpolation) beschreiben. Da die Koeffizientenpunkte der Monom-Basis nicht viel über den Kurvenverlauf aussagen, entstanden die Darstellungen mit der Bernstein-Basis (Bézier-Kurven) und mit dem De-Casteljau-Algorithmus. Die letzten beiden haben allerdings auch Vor- und Nachteile. Der De-Casteljau-Algorithmus hat gegenüber der Bézierdarstellung bei der Berechnung der Punkte (Numerik) Vorteile. Bézierkurven lassen sich dafür durch die vielen formalen Eigenschaften (s. o.) der Bernstein-Polynome leichter theoretisch (z. B. Krümmung) untersuchen. Der numerische Nachteil der Bézier-Kurven (Auswertung der Bernstein-Polynome) lässt sich durch eine dem Horner-Schema ähnlichen Methode ausgleichen:

function bezier_comp(degree: integer; coeff: r_array; t: real): real;
{Berechnet eine Komponente einer Bezier-Kurve. (Aus FARIN: Curves and Surfaces...)}
var
  i, n_choose_i: integer;  fact, t1, aux: real;
begin
  t1 := 1 - t;  fact := 1;  n_choose_i := 1;
  aux := coeff[0] * t1;
  for i := 1 to degree - 1 do
  begin
    fact := fact * t;
    n_choose_i := n_choose_i * (degree - i + 1) div i;
    aux := (aux + fact * n_choose_i * coeff[i]) * t1;
  end;
  aux := aux + fact * t * coeff[degree];
  bezier_comp := aux;
end;  {bezier_comp}

Ableitungen einer Bézier-Kurve 
Mit Hilfe der Ableitungen der Bernsteinpolynome
ergibt sich für die 1. Ableitung der Bézierkurve
:

Lässt man die Tangentenvektoren alle im Nullpunkt des Koordinatensystems
beginnen, so beschreiben sie eine weitere Bézierkurve mit den
Kontrollpunkten .

Speziell gilt:
 und 

Um höhere Ableitungen übersichtlich schreiben zu können, führt man
folgenden Differenzenoperator ein:

Es ist

Die -te Ableitung der Bézierkurve 
lässt sich jetzt wie folgt schreiben:

Speziell für  und  erhält man

 und

Graderhöhung einer Bézierkurve 

Eine wichtige Manipulation der Darstellung einer vorgegebenen Bézierkurve ist die sog. Graderhöhung. Sie ist vergleichbar mit dem Anfügen von Termen  an ein Polynom
. Dabei ändert sich das Polynom nicht und der
(scheinbare) Grad wird erhöht. Analog stellt man eine fest vorgegebene Bézierkurve  in der Form
 mit geeigneten neuen Kontrollpunkten  dar.
Um die neuen Kontrollpunkte zu bestimmen, multipliziert man die ursprüngliche Darstellung mit dem Faktor :

Die neuen Kontrollpunkte sind also:

Wesentliche Eigenschaften der Graderhöhung sind:
 Wiederholte Graderhöhung führt zu einer Approximation der Bézierkurve durch das Kontrollpolygon.
 Die größere Anzahl von Kontrollpunkten bietet mehr Freiheitsgrade, die Kurve zu verändern.
 Mehrere Bézierkurven lassen sich auf einen einheitlichen Grad bringen. Dies ist wichtig bei Tensorprodukt-Bézierflächen.
 Damit lassen sich auch dann quadratische Bézierkurven als kubische darstellen, falls ein Vektorzeichenprogramm (z. B. Inkscape) bzw. eine Grafikbibliothek (z. B. Cairo) nur kubische unterstützt.

Teilung einer Bézierkurve 

Eine Bézierkurve  ist normalerweise definiert für
.
Sei nun . Dann ist  mit  ein Teil der gegebenen Bézierkurve. Es soll nun die Teilkurve  als
Bézierkurve  mit  vom (selben) Grad  mit geeigneten Kontrollpunkten  dargestellt werden. Setzt man , so muss die folgende Gleichung erfüllt sein:
 für 

Dies gilt für
  (s. Casteljau-Alg. und Abbildung)
Denn

 wegen 

 (s. Eigensch. (S) der Bernst.-Pol.)

Der restliche Bogen ist die Bézierkurve  mit den Kontrollpunkten
  (s. Abbildung)

Rationale Bézierkurven

Rationale Kurven und projektive Kurven 
Bézierkurven sind parametrisierte Kurven, deren Parameterdarstellungen nur Polynome verwenden. Leider lassen sich so wichtige und geometrisch einfache Kurven wie Kreise nicht durch polynomiale Parameterdarstellungen beschreiben. Dieser Nachteil ist u. a. das Motiv für die Erweiterung
der als Parameterfunktionen zulässigen Funktionen auf rationale Funktionen.
Denn jeder Kegelschnitt hat eine rationale Darstellung. Da eine Kurve mit einer rationalen Darstellung

wobei die Funktionen  und  Polynome sind, in homogenen Koordinaten
die polynomiale Darstellung

besitzt, lassen sich ebene Kurven mit rationalen Koeffizientenfunktionen als
Zentralprojektion einer Bézierkurve im  auf die Einbettungsebene
 auffassen.

Die analoge Aussage gilt für Kurven im
. Sie lassen sich als Zentralprojektion einer Bézierkurve im 
auf den Einbettungsraum  auffassen. Damit lassen sich die Vorteile
der Bézier-Darstellung einer polynomialen Kurve auch für rationale
Kurven nutzen.

Ebene rationale Bézierkurven 

Es sei nun  festgewählt und die Vektoren  beschreiben ein Polygon im
. Dann ist

eine (räumliche) Bézier-Kurve vom Grad . Die Punkte 
sind die Kontrollpunkte der (räumlichen) Bézierkurve.
Fasst man die 1-dimensionalen Unterräume

als Punkte der reellen projektiven Ebene mit der Ferngerade 
auf, so bezeichnet man den affinen Anteil (Projektion vom Nullpunkt aus auf die Ebene ) dieser projektiven Kurve als rationale Bézierkurve.

Die Kontrollpunkte der Bézierkurve im  lassen sich folgendermaßen beschreiben:
 falls  nicht auf der Ferngerade  und
 falls  auf der Ferngerade liegt.

Beim Übergang zu inhomogenen Koordinaten wird ein Kontrollpunkt
entweder auf den affinen Punkt  oder auf den Fernpunkt
in Richtung  abgebildet.
Der Punkt  heißt eigentlicher bzw. uneigentlicher
Kontrollpunkt der rationalen Bézierkurve und die Zahl  heißt das
Gewicht des Kontrollpunktes .
Eine rationale Bézierkurve hat folgende affine Beschreibung:
 
wobei  für eigentliche und  für uneigentliche
Kontrollpunkte zu setzen ist.

Die rationalen Bézierkurven haben (u. a.) die folgenden Eigenschaften:

Sind  eigentliche Kontrollpunkte bzw.
die Gewichte einer rationalen Bézierkurve , so gilt

 Die Kurve  enthält die Kontrollpunkte  (erster bzw. letzter Punkt des Kontrollpolygons).
 Die Tangente im Punkt  bzw.  hat die Richtung  bzw. .
 Eine Erhöhung des Gewichts  bewirkt eine Veränderung der Kurve auf den Kontrollpunkt  zu. (s. Abbildung)

Zusammenfassung:
Eine ebene rationale Bézierkurve besitzt neben dem Kontrollpolygon noch die Gewichte  als Designparameter. Will man eine Kurve erzeugen, legt man zunächst die Kontrollpunkte  und die Gewichte  fest. Dadurch wird dann auch eine räumliche (gewöhnliche) Bézierkurve mit den Kontrollpunkten  definiert. Die Projektion dieser Kurve (vom Nullpunkt aus) auf die x-y-Ebene () liefert dann die ebene rationale Bézierkurve. Eine Variation der Gewichte ändert nicht die Kontrollpunkte , aber die (räumlichen) Kontrollpunkte  und damit die zugehörige räumliche Bézierkurve und schließlich auch die (ebene) rationale Bézierkurve. Erhöht man ein Gewicht , so entfernt sich der zugehörige Kontrollpunkt  vom Nullpunkt und zieht die räumliche Bézierkurve mit. Der zugehörige Kontrollpunkt  dagegen bleibt unverändert. Die rationale Bézierkurve bewegt sich auf ihn zu (s. Bild). Verringert man das Gewicht, bewegt sich die Kurve von dem Kontrollpunkt weg. Falls alle Gewichte 1 sind, ist die rationale Bézierkurve eine gewöhnliche Bézierkurve mit den Kontrollpunkten .

Kegelschnitte als rationale Bézierkurven 

Parabel:
Eine Bézierkurve vom Grad zwei mit nicht kollinearen Kontrollpunkten
 im 
ist immer eine Parabel (s. oben). Um eine Parabel als (ganz-)rationale Bézierkurve darzustellen, wählt man drei nicht kollineare Kontrollpunkte  und setzt  und . Letzteres bedeutet: Die Kontrollpunkte sind alle eigentlich.

Ellipsen und Hyperbeln lassen sich durch Zentralprojektion von Parabeln im , deren Ebenen nicht den Nullpunkt enthalten, auf die Einbettungsebene  erzeugen.

Hyperbel:
Für die Kontrollpunkte

beschreibt

eine Parabel, die auf dem Kegel mit der Gleichung  liegt (s. Bild). Die Kontrollpunkte und Gewichte der zugehörigen (ebenen) rationalen Bézierkurve sind:
 bzw. :.
 sind uneigentliche Kontrollpunkte. Damit ist

und der Nenner (s. o.) der rationalen Komponenten ist .

Also ist die zugehörige rationale Bézierkurve

Dies ist eine rationale Parameterdarstellung eines Astes der Hyperbel mit der Gleichung .

Die Änderung  liefert eine rationale Bézierdarstellung der Hyperbel .

Kreis:
In dem folgenden Beispiel sind die Kontrollpunkte der (räumlichen) Parabel:
.

Die Bézierkurve

liegt in diesem Fall auf dem Kegel mit der Gleichung  (s. Abbildung).
Die Kontrollpunkte und Gewichte der zu gehörigen rationalen Bézierkurve sind:
 bzw. .
 ist uneigentlicher Kontrollpunkt. Damit ist

und der Nenner (s. o.) der rationalen Komponenten ist .

Also ist die zugehörige rationale Bézierkurve

Für  ist dies eine rationale Parameterdarstellung eines halben Einheitskreises.

Setzt man  erhält man eine rationale Bézierdarstellung der Ellipse mit der Gleichung .

Anwendung: Kreisapproximation durch kubische Bézierkurven 

Kreise bzw. Kreisbögen lassen sich durch Bézierkurven nicht exakt, sondern nur genähert darstellen. Eine solche Näherung ist z. B. für die Gestaltung einer Typ-1-PostScript-Schrift nötig, da hier nur Strecken und Bézierkurven dritten Grades erlaubt sind. (Jedoch verläuft auch für größere  keine Bézierkurve  -ten Grades in einem noch so kleinen Kreisbogen mit Radius  zum Mittelpunkt , denn  liegt genau dann auf dem Kreisbogen, wenn  Nullstelle der Polynomfunktion  vom Grad  ist, was höchstens  Male vorkommt – vgl. Fehleranalyse.)

Teilt man einen Kreis in nur zwei (gleich große) Segmente und nähert die Halbkreise durch kubische Bézierkurven, zeigen sich größere Abweichung von der Kreisgestalt. Durch eine feinere Unterteilung in mehr Segmente lässt sich ein Kreis besser nähern. Je geringer der überstrichene Winkelbereich des Kreissegments ist, desto genauer ist die Näherung durch die Bézierkurve.
Eine oft verwendete, einfache Realisierung eines Kreises verwendet vier Viertelkreisbögen, die als kubische Bézierkurven dargestellt werden.
Um die Verbesserung der Näherung durch Verfeinerung der Unterteilung zu demonstrieren, werden in der Folge die Fehler der Halbkreisapproximation und der Viertelkreisapproximation miteinander verglichen.

Notation: Wir untersuchen Approximationen eines Kreises  mit folgenden Parametern:
  ist der Radius von 
  ist der Mittelpunkt von 
 die Kontrollpunkte  und  liegen vom Mittelpunkt  im Abstand  entfernt (also auf der Kreislinie von )
  ist eine reelle Zahl zwischen 0 und 1 ( entspräche einer quadratischen Bézierapproximation).
Die zusätzlichen Kontrollpunkte  und  werden so gewählt, dass  zu  und  zu  den Abstand  hat.

Beispielkoordinaten Viertelkreis: 

Als einfaches Beispiel einer Viertelkreisapproximation wählen wir:
 den Mittelpunkt  des Kreises  als ,
 den Kontrollpunkt  auf der Kreislinie als ,
 den Kontrollpunkt  auf der Kreislinie als  – die Strecke  steht also senkrecht auf , so dass beide Strecken einen Viertelkreissektor bilden –,
 den Kontrollpunkt  als  (auf der Strecke ),
 den Kontrollpunkt  als  (auf der Strecke ).
Die vier Kontrollpunkte liegen also auf dem Rand des Quadrats mit den Eckpunkten , ,  und . Dies gewährleistet immerhin, dass die Näherungskurve und die Kreislinie in  und  dieselbe Tangente haben. So ist auch die aus den Viertelkreisapproximationen zusammengesetzte Kurve in den Knotenpunkten „glatt“.

Die kubische Bézierkurve  () hat mit diesen Kontrollpunkten folgende Form:

Eine recht gute Approximation des oberen rechten Viertelkreisbogens erhält man mit , wie die nachfolgende Betrachtung zeigt.

Fehleranalyse: 

Die Abweichung der gerade angegebenen Bézierkurve  vom darzustellenden Kreis  lässt sich folgendermaßen quantifizieren:

Ein Punkt  der Bézierkurve  liegt genau dann auf der vorgegebenen Kreislinie mit Radius  um den Mittelpunkt , wenn  („Koordinatengleichung“) gilt. Definiert man

so ist das äquivalent zu .  ist ein Maß für die Abweichung der Approximation  von der Kreisgestalt.

Fordert man dann die Übereinstimmung der Bézierkurve  mit dem Kreis  bei der Winkelhalbierenden, erhält man

Der Fehler ist Null bei , sonst überall positiv, d. h. die Bézierkurve liegt stets auf oder außerhalb des Kreisbogens. Der maximale Fehler beträgt  bei  und bei .

Fordert man, dass die aufsummierten Fehler über die gesamte Kurve verschwinden ( kann sowohl positiv als auch negativ sein – die Bézierkurve verläuft teils außerhalb, teils innerhalb der Kreislinie – und das Integral darüber kann Null ergeben), erhält man

Die größten Abweichungen liegen bei etwa  und bei . Beide Approximationen sind somit für viele Anwendungsbereiche ausreichend.

 Beispielkoordinaten Halbkreis: 

Bei einer Halbkreisnäherung mit , , , und ,  mit  beträgt die maximale Abweichung . Dies ist bzgl. der maximalen Abweichung etwa 50 mal schlechter als die Viertelkreisapproximation.

Literatur 

 Gerald Farin: Curves and Surfaces for CAGD. A practical guide. 5. Auflage. Academic Press, San Diego 2002, ISBN 1-55860-737-4
 J. Hoschek, D. Lasser: Grundlagen der geometrischen Datenverarbeitung. Vieweg+Teubner Verlag, 1989, ISBN 978-3-519-02962-5
 David Salomon: Curves and Surfaces for Computer Graphics. Springer Science+Business Media, 2006, ISBN 0-387-24196-5
 Boaswan Dzung Wong: Bézierkurven: gezeichnet und gerechnet. Orell Füssli Verlag, Zürich 2003, ISBN 3-280-04021-3
 Wolfgang Boehm, Gerald Farin, Jürgen Kahmann: A survey of curve and surface methods in CAGD. In: Comput. Aided Geom. Des., 1, S. 1–60, 1984

Weblinks 
 
 Computerunterstützte Darstellende und Konstruktive Geometrie. (CDKG) Uni Darmstadt (PDF; 3,4 MB), S. 74,227.
 Dr. Hans Walser, Mathematisches Institut der Universität Basel: Die Modellierung des schönen Scheins, Mathematikinformation Nr. 55, Seite 10, Abschnitt 10.2

Vier Stützpunkte
 Java-Applet

Mehr als vier Stützpunkte
 TinySpline. Open Source C-Programmbibliothek für NURBS, B-Splines und Bézier Splines mit Bindings für verschiedene Sprachen

Einzelnachweise 

Geometrische Modellierung
Numerische Mathematik
Mathematische Funktion
Wikipedia:Artikel mit Video