Bézierkurven

Bezier_curve.png
Kubische Bézierkurve
In der numerischen Mathematik ist die Bézierkurve eine parametrisch modellierte Kurve. Anfang der 1960er Jahre wurde die Bézierkurve unabhängig voneinander von Pierre Bézier bei Renault und Paul de Casteljau bei Citroën entwickelt.

Definition

Eine Bézierkurve nn-ten Grades wird durch n+1n+1 Punkte (Pi)i=0n(P_i)_{i=0}^n beschrieben und ist (für 0t10 \leq t \leq 1) rekursiv definiert als:
C(t):=C0n(t) C(t) := C_0^n(t)
C(t)ij:={(1t)Cij1(t)+tCi+1j1(t),j>0Pi,sonst  C(t)_i^j := \begin{cases} (1-t)C_i^{j-1}(t) + tC_{i+1}^{j-1}(t), & j>0 \\ P_i, & \text{sonst } \end{cases}
Löst man diese Rekursion auf erhält man:
C(t)=i=0n(ni)ti(1t)niPiC(t) = \sum\limits_{i=0}^n \binom n i t^i (1-t)^{n-i} P_i =i=0nBi,n(t)Pi = \sum\limits_{i=0}^n B_{i,n}(t) P_i
wobei Bi,n B_{i,n} das ii-te Bernsteinpolynom nn-ten Grades ist.

Eigenschaften

Bezier_grad123.png
Bezier Kurven (rot) der Grade 1, 2 und 3 und zugehörige Kontrollpolygone (grau). Von links nach rechts wurde jeweils ein Kontrollpunkt (blau) hinzugefügt. Man erkennt wie die Kurve bei Einfügen/Verändern eines Kontrollpunkts "oszilliert", d.h. sich komplett verändert.
  • Die Kurve liegt innerhalb der konvexen Hülle des Kontrollpolygons. Dies folgt daraus, dass die Bernsteinpolynome vom Grad nn eine Zerlegung der Eins sind: 1=i=0nBi,n(t) 1 = \sum\limits_{i=0}^n B_{i,n}(t) t[0,1] t \in [0,1]
  • Die Kurve geht genau durch die Endpunkte P0P_0 und PnP_n:
C(0)=i=0n(ni)0i(10)niPi=P0 C(0) = \sum\limits_{i=0}^n \binom n i 0^i(1-0)^{n-i} P_i = P_0
C(1)=Pn C(1) = P_n
C(0)=n(P1P0)C'(0) =n \cdot (P_1 - P_0),
C(1)=n(PnPn1)C'(1) = n \cdot (P_n - P_{n-1}).
  • Eine Gerade schneidet eine Bézierkurve höchstens so oft, wie sie ihr Kontrollpolygon schneidet (die Kurve 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. D.h.: Verschiebt man einen Punkte, verändert sich die gesamte Kurve. Daher verwendet man in der Praxis meist Splines, zusammengesetzte Kurven festen Grades, die stetig ineinander übergehen.
Als verallgemeinerte Form der Bézierkurve kann die Bézierfläche gesehen werden. Eine Bézierfläche (n,m)(n,m)-ter Ordnung ist eine Fläche der Form
C(u,v)=i=0nj=0mPi,jBi,n(u)Bj,m(v)C(u, v) = \sum\limits_{i=0}^n \sum\limits_{j=0}^m P_{i,j} B_{i,n}(u) B_{j,m}(v),
mit den Kontrollpunkten Pi,jP_{i,j} und den Bernsteinpolynomen Bi,n(u)B_{i,n}(u) und Bj,m(v)B_{j,m}(v).
Eine Bézierfläche kann also durch zwei zueinander orthogonale Bézierkurven beschrieben werden.

Anwendung

In der Computergrafik werden Bézierkurven zur Definition von Kurven und Flächen im Rahmen von CAD, bei Vektorgrafiken (z. B. SVG) und zur Beschreibung von Schriften (z. B. Postscript Type1 und CFF-Opentype) verwendet.
Eine Bézierkurve kann mit Hilfe des de Casteljau-Algorithmus effizient ausgewertet bzw. gezeichnet werden.

Beispiele

Lineare Bézierkurven (n=1)

Bezier_linear_anim.png
Konstruktion einer linearen Bézierkurve
Zwei Kontrollpunkte P0P_0 und P1P_1 bestimmen eine lineare Bézierkurve, die einer Geraden zwischen diesen beiden Punkten entspricht. Die Kurve wird angegeben durch
C(t)=i=01ti(1t)1iPi C(t) = \sum\limits_{i=0}^1 t^i (1-t)^{1-i} P_i = (1t)P0+tP1 =\ (1-t)P_0 + t P_1 , t[0,1] t \in [0,1] .
Bezier_quadratic_anim.png

Quadratische Bézierkurven (n=2)

Eine quadratische Bézierkurve ist der Pfad, der durch die Funktion C(t) für die Punkte P0,P1P_0,\, P_1 und P2P_2 verfolgt wird:
C(t)=i=02ti(1t)1iPiC(t) = \sum\limits_{i=0}^2 t^i (1-t)^{1-i} P_i = (1t)2P0+2t(1t)P1+t2P2 =\ (1 - t)^{2}P_0 + 2t(1 - t)P_1 + t^{2}P_2 , t[0,1] t \in [0,1].
Bezier_cubic_anim.png

Kubische Bézierkurven (n=3)

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.
Vier Punkte (P0,P1,P2P_0,\, P_1,\, P_2 und P3P_3) bestimmen eine kubische Bézierkurve. Die Kurve beginnt bei P0P_0 und geht in Richtung P1P_1 und dann aus Richtung P2P_2 zu P3P_3. Im Allgemeinen geht die Kurve nicht durch P1P_1 und P2P_2 - diese Punkte dienen nur der Richtung, wobei P1P_1 die Richtung bestimmt, in welche die Kurve in P0P_0 geht. P2P_2 legt die Richtung fest, aus welcher die Kurve zu P3P_3 geht. Der Abstand zwischen P0P_0 und P1P_1 und der Abstand von P2P_2 und P3P_3 bestimmen, "wie weit" sich die Kurve in Richtung der Kontrollpunkte P1P_1 und P2P_2 bewegt, bevor sie in Richtung P3P_3 läuft.
C(t)  C(t) \ = i=03(3i)ti(1t)3i = \ \sum\limits_{i=0}^3 \binom 3 i t^i (1-t)^{3-i} = (1t)3P0+3t(1t)2P1+3t2(1t)P2+t3P3 = \ (1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+t^3P_3 = (t3t2t1)Monome(1331363033001000)Basismatrix(P0P1P2P3)Geometrievektor = \ \underbrace{(t^3 t^2 t 1)}_\text{Monome} \underbrace{\begin{pmatrix} -1 & 3 & -3 & 1 \\ 3 & -6& 3 & 0 \\ -3 & 3 & 0 & 0 \\ 1 & 0 & 0 & 0 \end{pmatrix}}_\text{Basismatrix} \underbrace{\begin{pmatrix} P_0 \\ P_1 \\ P_2 \\ P_3 \end{pmatrix}}_\text{Geometrievektor}, t[0,1] t \in [0,1] .

Literatur

  • Gerald Farin: Curves and Surfaces for CAGD. A practical guide. 5. Aufl. Academic Press, San Diego 2002, ISBN 1-55860-737-4
  • David Salomon: Curves and Surfaces for Computer Graphics. Springer Science+Business Media, Inc., 2006, ISBN 0-387-24196-5
 
 

Das Buch der Natur ist mit mathematischen Symbolen geschrieben.

Galileo Galilei

Copyright- und Lizenzinformationen: Diese Seite basiert dem Artikel Bézierkurve aus der frеiеn Enzyklοpädιe Wιkιpеdιa und stеht unter der Dοppellizеnz GNU-Lιzenz für freie Dokumentation und Crеative Commons CC-BY-SA 3.0 Unportеd (Kurzfassung). In der Wιkιpеdιa ist eine Listе dеr Autorеn des Originalartikels verfügbar. Da der Artikel geändert wurde, reicht die Angabe dieser Liste für eine lizenzkonforme Weiternutzung nicht aus!
Anbieterkеnnzeichnung: Mathеpеdιa von Тhοmas Stеιnfеld  • Dοrfplatz 25  •  17237 Blankеnsее  • Tel.: 01734332309 (Vodafone/D2)  •  Email: cο@maτhepedιa.dе