Bézierkurve - LinkFang.de





Bézierkurve


Die Bézierkurve [be'zje…] 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.

Definition

Eine Bézierkurve [math]n[/math]-ten Grades zu gegebenen [math]n+1[/math] Kontroll- oder Bézierpunkten [math]P_0,P_1,\dotsc,P_n[/math], die das so genannte Kontrollpolygon bilden, ist für [math]t \in [0,1][/math] definiert als

[math]C(t)= \sum_{i=0}^n B_{i,n}(t) P_i\, [/math]

wobei

[math]B_{i,n}(t)= \binom n i t^i (1-t)^{n-i}[/math]

das i-te Bernsteinpolynom n-ten Grades ist. Diese bilden eine Basis des Vektorraums der Polynome und erfüllen die Rekursionsformel

[math]B_{i,n}(t) = (1-t) \cdot B_{i,n-1}(t) \,+\, t \cdot B_{i-1,n-1}(t)[/math]

mit [math]B_{i,n} := 0[/math] für [math]i \lt 0[/math] oder [math]i \gt n[/math], sowie [math] B_{0,0} := 1[/math]. Dies erlaubt eine numerisch stabile rekursive Berechnung der Werte einer Bézierkurve mit Hilfe des De-Casteljau-Algorithmus:

[math]\begin{align} C_i^0(t) & \;:=\; P_i \\ C_i^j(t) & \;:=\; (1-t)C_i^{j-1}(t) \,+\, tC_{i+1}^{j-1}(t) \quad\text{mit}\quad j=1, \ldots ,n \quad\text{und}\quad i=0,\ldots,n-j \end{align}[/math]

Eigenschaften

[math] 1 = \sum_{i=0}^n B_{i,n}(t) \quad t \in [0,1][/math]
  • Die Kurve geht genau durch die Endpunkte [math]P_0[/math] und [math]P_n[/math]:
[math] \begin{align} C(0) \; & = \; \sum_{i=0}^n \binom n i 0^i(1-0)^{n-i} P_i\\ & = \; P_0 \\ C(1) \; & = \; P_n \end{align}[/math]
  • Die Tangenten in den Endpunkten verlaufen entlang der Kanten [math]P_0 P_1[/math] bzw. [math]P_{n-1} P_n[/math] des Kontrollpolygons:
[math]\begin{align} C'(0) \;&=\; n \, (P_1 - P_0)\\ C'(1) \;&=\; n \, (P_n - P_{n-1}) \end{align}[/math]
  • Die ersten Summanden des Taylorpolynoms bei [math]t=0[/math] bzw. bei [math]t=1[/math] lauten für [math]n\geq 2[/math]:
[math]C(t)=P_{0}+n(P_{1}-P_{0})t+\frac{n(n-1)}{2}(P_{0}-2P_{1}+P_{2})t^{2}+\mathcal{O}(t^{3})[/math]
[math]C(t)=P_{n}+n(P_{n-1}-P_{n})(1-t)+\frac{n(n-1)}{2}(P_{n-2}-2P_{n-1}+P_{n})(1-t)^{2}+\mathcal{O}((1-t)^{3})[/math]
  • 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 vorherigen Stützpunkten ergeben. Dabei ist der Trennungspunkt vom Parameter [math]t[/math] abhängig. Aus der Abbildung für die Konstruktion einer Bézierkurve ist ersichtlich, dass sich die neue erste Kurve aus den Kontrollpunkten [math]P_0, Q_0, R_0, B[/math] zusammensetzt, während die zweite Kurve aus den Punkten [math]B, R_1, Q_2, P_3[/math] besteht. Diese Eigenschaft kann genutzt werden, um eine Kurve rekursiv mit Hilfe des De-Casteljau-Algorithmus durch Geraden anzunähern.

Als verallgemeinerte Form der Bézierkurve kann die Bézierfläche gesehen werden. Eine Bézierfläche [math](n,m)[/math]-ter Ordnung ist eine Fläche der Form

[math]C(u, v) = \sum_{i=0}^n \sum_{j=0}^m P_{i,j} B_{i,n}(u) B_{j,m}(v)[/math]

mit den Kontrollpunkten [math]P_{i, j}[/math] und den Bernsteinpolynomen [math]B_{i,n}(u)[/math] und [math]B_{j,m}(v)[/math].

Eine Bézierfläche kann also durch zwei zueinander orthogonale Bézierkurven beschrieben werden.

Bézierkurven bis zum dritten Grad

Lineare Bézierkurven (n=1)

Zwei Kontrollpunkte [math]P_0[/math] und [math]P_1[/math] bestimmen eine gerade Strecke zwischen diesen beiden Punkten. Der Verlauf dieser linearen Bézier„kurve“ wird angegeben durch

[math] C(t) = \sum_{i=0}^1 t^i (1-t)^{1-i} P_i =\ (1-t)P_0 + t P_1 \mbox{ , } t \in [0,1][/math]

Quadratische Bézierkurven (n=2)

Eine quadratische Bézierkurve ist der Pfad, der durch die Funktion [math]C(t)[/math] für die Punkte [math]P_0[/math], [math]P_1[/math] und [math]P_2[/math] verfolgt wird:

[math]\begin{align} C(t) \ & =\ \sum_{i=0}^2 \binom 2 i t^i (1-t)^{2-i} P_i \\ \ & =\ (1 - t)^{2}P_0 + 2t(1 - t)P_1 + t^{2}P_2 \\ \ & =\ (P_0 - 2P_1 + P_2)t^{2} + (-2P_0 + 2P_1)t + P_0 \mbox{ , } t \in [0,1] \end{align}[/math]

Mit Hilfe des De-Casteljau-Algorithmus ausgedrückt: [math]C(t)=C_{0}^{2}(t)[/math]

[math]C_{0}^{2}(t)=(1-t)\underbrace{\Bigl[(1-t)\overbrace{P_{0}}^{C_{0}^{0}}+t\overbrace{P_{1}}^{C_{1}^{0}}\Bigr]}_{C_{0}^{1}(t)}+t\underbrace{\Bigl[(1-t)\overbrace{P_{1}}^{C_{1}^{0}}+t\overbrace{P_{2}}^{C_{2}^{0}}\Bigr]}_{C_{1}^{1}(t)}[/math]

Die Strecken [math]C_{0}^{1}(t)[/math] und [math]C_{1}^{1}(t)[/math] sind die Kanten des Kontrollpolygons (graue Linien in nebenstehender Animation). Die Kurvenschar [math]\tilde{C}_{0}^{2}(\tilde{t},t)=(1-\tilde{t})C_{0}^{1}(t)+\tilde{t}C_{1}^{1}(t)[/math] mit [math]\tilde{t}\in[0,1][/math] entspricht den grünen Linien in der Animation. Die Auswertung an den Stellen mit [math]\tilde{t}=t[/math] gibt den Verlauf der Bézierkurve an: [math]C_{0}^{2}(t)=\tilde{C}_{0}^{2}(t,t)[/math].

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. Selbiges gilt für hermitesche Splines, die in ihrer kubischen Form vor allem in der Computeranimation zur Interpolation zwischen Keyframes verwendet werden.

Vier Punkte ([math]P_0[/math], [math]P_1[/math], [math]P_2[/math] und [math]P_3[/math]) bestimmen eine kubische Bézierkurve. Die Kurve beginnt bei [math]P_0[/math] und geht in Richtung [math]P_1[/math] und dann aus Richtung [math]P_2[/math] zu [math]P_3[/math]. Im Allgemeinen geht die Kurve nicht durch [math]P_1[/math] und [math]P_2[/math] – diese Punkte dienen nur der Richtungsangabe, wobei [math]P_1[/math] die Richtung bestimmt, in welche die Kurve in [math]P_0[/math] geht. [math]P_2[/math] legt die Richtung fest, aus welcher die Kurve zu [math]P_3[/math] geht. Der Abstand zwischen [math]P_0[/math] und [math]P_1[/math] und der Abstand von [math]P_2[/math] und [math]P_3[/math] bestimmen, „wie weit“ sich die Kurve in Richtung der Kontrollpunkte [math]P_1[/math] und [math]P_2[/math] bewegt, bevor sie in Richtung [math]P_3[/math] läuft.

[math]\begin{align} C(t) \ & = \ \sum_{i=0}^3 \binom 3 i t^i (1-t)^{3-i} P_i \\ & = \ (1-t)^3P_0+3t(1-t)^2P_1+3t^2(1-t)P_2+t^3P_3 \\ & = \ (-P_0 + 3P_1 -3P_2 + P_3) t^3 + (3P_0 - 6P_1 + 3P_2) t^2 + (-3P_0 + 3P_1) t + P_0, t \in [0,1] \end{align}[/math]

Mit Hilfe des De-Casteljau-Algorithmus ausgedrückt: [math]C(t)=C_{0}^{3}(t)[/math]

[math]\begin{align} C_{0}^{3}(t)=(1-t) & \underbrace{\Bigl\{(1-t)\overbrace{\bigl[(1-t)P_{0}+tP_{1}\bigr]}^{C_{0}^{1}(t)}+t\overbrace{\bigl[(1-t)P_{1}+tP_{2}\bigr]}^{C_{1}^{1}(t)}\Bigr\}}_{C_{0}^{2}(t)}+\\ +t & \underbrace{\Bigl\{(1-t)\overbrace{\bigl[(1-t)P_{1}+tP_{2}\bigr]}^{C_{1}^{1}(t)}+t\overbrace{\bigl[(1-t)P_{2}+tP_{3}\bigr]}^{C_{2}^{1}(t)}\Bigr\}}_{C_{1}^{2}(t)} \end{align}[/math]

Die Strecken [math]C_{0}^{1}(t)[/math] und [math]C_{1}^{1}(t)[/math] sowie [math]C_{2}^{1}(t)[/math] sind die Kanten des Kontrollpolygons (graue Linien in nebenstehender Animation). Die beiden Kurvenscharen [math]\tilde{C}_{0}^{2}(\tilde{t},t)=(1-\tilde{t})C_{0}^{1}(t)+\tilde{t}C_{1}^{1}(t)[/math] und [math]\tilde{C}_{1}^{2}(\tilde{t},t)=(1-\tilde{t})C_{1}^{1}(t)+\tilde{t}C_{2}^{1}(t)[/math] mit [math]\tilde{t}\in[0,1][/math] entsprechen den grünen Linien in der Animation.

Die Kurvenschar [math]\tilde{C}_{0}^{3}(\tilde{t},t)=(1-\tilde{t})C_{0}^{2}(t)+\tilde{t}C_{1}^{2}(t)[/math] mit [math]\tilde{t}\in[0,1][/math] entspricht den blauen Linien in der Animation. Die Auswertung an den Stellen mit [math]\tilde{t}=t[/math] gibt den Verlauf der Bézierkurve an: [math]C_{0}^{3}(t)=\tilde{C}_{0}^{3}(t,t)[/math].

Kubische Darstellung quadratischer Bézierkurven

Wählt man die mittleren Bézierpunkte [math]P_1[/math] und [math]P_2[/math] einer kubischen Bézierkurve wie folgt

[math]P_{1}:=P_{0}+\frac{2}{3}(P_{12}-P_{0}) \,,\ P_{2}:=P_{3}+\frac{2}{3}(P_{12}-P_{3})[/math]

erhält man eine Kurve, die exakt der quadratischen Bézierkurve mit den Punkten [math]P_0[/math], [math]P_{12}[/math] und [math]P_3[/math] entspricht:

[math]\begin{align} C(t) & =(1-t)^{3}P_{0}+3t(1-t)^{2}\left(\frac{2}{3}P_{12}+\frac{1}{3}P_{0}\right)+3t^{2}(1-t)\left(\frac{2}{3}P_{12}+\frac{1}{3}P_{3}\right)+t^{3}P_{3}\\ & =(1-t)^{2}P_{0}+2t(1-t)P_{12}+t^{2}P_{3} \end{align}[/math]

Damit lassen sich auch dann quadratische Bézierkurven darstellen, falls ein Vektorzeichenprogramm (z. B. Inkscape) bzw. eine Grafikbibliothek (z. B. Cairo) nur kubische unterstützt.

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 [math]n[/math] keine Bézierkurve [math]t\mapsto(x(t)|y(t))[/math] [math]n[/math]-ten Grades in einem noch so kleinen Kreisbogen mit Radius [math]r[/math] zum Mittelpunkt [math](z_1|z_2)[/math], denn [math](x(t_0)|y(t_0))[/math] liegt genau dann auf dem Kreisbogen, wenn [math]t_0[/math] Nullstelle der Polynomfunktion [math]t \mapsto [x(t)-z_1]^2+[y(t)-z_2]^2-r^2[/math] vom Grad [math]2n[/math] ist, was höchstens [math]2n[/math] 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 [math]Q[/math] mit folgenden Parametern:

  • [math]r[/math] ist der Radius von [math]Q[/math]
  • [math]M[/math] ist der Mittelpunkt von [math]Q[/math]
  • die Kontrollpunkte [math]P_0[/math] und [math]P_3[/math] liegen vom Mittelpunkt [math]M[/math] im Abstand [math]r[/math] entfernt (also auf der Kreislinie von [math]Q[/math])
  • [math]\kappa[/math] ist eine reelle Zahl zwischen 0 und 1 ([math]\kappa=1[/math] entspräche einer quadratischen Bézierapproximation).

Die zusätzlichen Kontrollpunkte [math]P_1[/math] und [math]P_2[/math] werden so gewählt, dass [math]P_1[/math] zu [math]P_0[/math] und [math]P_2[/math] zu [math]P_3[/math] den Abstand [math]\kappa r[/math] hat.

Beispielkoordinaten Viertelkreis

Als einfaches Beispiel einer Viertelkreisapproximation wählen wir:

  • den Mittelpunkt [math]M[/math] des Kreises [math]Q[/math] als [math](0|0)[/math],
  • den Kontrollpunkt [math]P_0[/math] auf der Kreislinie als [math](r|0)[/math],
  • den Kontrollpunkt [math]P_3[/math] auf der Kreislinie als [math](0|r)[/math] – die Strecke [math]MP_3[/math] steht also senkrecht auf [math]MP_0[/math], so dass beide Strecken einen Viertelkreissektor bilden –,
  • den Kontrollpunkt [math]P_1[/math] als [math]P_0+\kappa(P_3-M) = (r|r\kappa)[/math] (auf der Strecke [math]P_0(r|r)[/math]),
  • den Kontrollpunkt [math]P_2[/math] als [math]P_3+\kappa(P_0-M) = (r\kappa|r)[/math] (auf der Strecke [math]P_3(r|r)[/math]).

Die vier Kontrollpunkte liegen also auf dem Rand des Quadrats mit den Eckpunkten [math]M=(0|0)[/math], [math]P_0=(r|0)[/math], [math]P_3=(0|r)[/math] und [math](r|r)[/math]. Dies gewährleistet immerhin, dass die Näherungskurve und die Kreislinie in [math]P_0[/math] und [math]P_3[/math] dieselbe Tangente haben. So ist auch die aus den Viertelkreisapproximationen zusammengesetzte Kurve in den Knotenpunkten „glatt“.

Die kubische Bézierkurve [math]t\mapsto(x_\kappa(t)|y_\kappa(t))[/math] ([math]t\in[0;1][/math]) hat mit diesen Kontrollpunkten folgende Form:

[math]x_\kappa(t)=(1-t)^{3}r+3t(1-t)^{2}r+3t^{2}(1-t)\kappa r \,,\quad y_\kappa(t)=t^{3}r+3t^{2}(1-t)r+3t(1-t)^{2}\kappa r[/math]

Eine recht gute Approximation des oberen rechten Viertelkreisbogens erhält man mit [math]\kappa=0{,}552[/math], wie die nachfolgende Betrachtung zeigt.

Fehleranalyse

Die Abweichung der gerade angegebenen Bézierkurve [math]t \mapsto (x_\kappa(t)|y_\kappa(t))[/math] vom darzustellenden Kreis [math]Q[/math] lässt sich folgendermaßen quantifizieren:

Ein Punkt [math](x_\kappa(t_0)|y_\kappa(t_0))[/math] der Bézierkurve [math](x_\kappa|y_\kappa)[/math] liegt genau dann auf der vorgegebenen Kreislinie mit Radius [math]r[/math] um den Mittelpunkt [math]M=(0|0)[/math], wenn [math]x_\kappa(t_0)^2 + y_\kappa(t_0)^2=r^2[/math] („Koordinatengleichung“) gilt. Definiert man

[math]f_\kappa(t)=\frac{x_\kappa(t)^2+y_\kappa(t)^2-r^2}{r^2};\quad0\leq t\leq 1,[/math]

so ist das äquivalent zu [math]f_\kappa(t_0)=0[/math]. [math]f_\kappa(t)[/math] ist ein Maß für die Abweichung der Approximation [math](x_\kappa|y_\kappa)[/math] von der Kreisgestalt.

Fordert man dann die Übereinstimmung der Bézierkurve [math](x_\kappa|y_\kappa)[/math] mit dem Kreis [math]Q[/math] bei der Winkelhalbierenden, erhält man

[math]0=f_\kappa(0{,}5)=\frac{9\kappa^{2}+24\kappa-16}{32}\quad\Longrightarrow\quad\kappa=\frac{4}{3}(\sqrt{2}-1)\approx0{,}55228[/math]

Der Fehler ist Null bei [math]t\in\left\lbrace0; 0{,}5; 1\right\rbrace[/math], sonst überall positiv, d. h. die Bézierkurve liegt stets auf oder außerhalb des Kreisbogens. Der maximale Fehler beträgt [math]f_\kappa(t)=5{,}45\cdot 10^{-4}[/math] bei [math]t=0{,}211[/math] und bei [math]t=0{,}789[/math].

Fordert man, dass die aufsummierten Fehler über die gesamte Kurve verschwinden ([math]f_\kappa(t)[/math] 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

[math]0=\int_{0}^{1}f_\kappa(t)\,\mathrm{d}t=\frac{6\kappa^{2}+13\kappa-9}{35}\quad\Longrightarrow\quad\kappa=\frac{\sqrt{385}-13}{12}\approx0{,}55178[/math]

Die größten Abweichungen liegen bei etwa [math]f_\kappa(0{,}5)=-5{,}3\cdot 10^{-4}[/math] und bei [math]f_\kappa(0{,}173)=f_\kappa(0{,}827)=3{,}5\cdot 10^{-4}[/math]. Beide Approximationen sind somit für viele Anwendungsbereiche ausreichend.

Beispielkoordinaten Halbkreis

Bei einer Halbkreisnäherung mit [math]M=(0|0)[/math], [math]P_0=(0|-r)[/math], [math]P_3=(0|r)[/math], und [math]P_1=(\kappa r|-r)[/math], [math]P_2=(\kappa r|r)[/math] mit [math]\kappa=1{,}3156[/math] beträgt die maximale Abweichung [math]f_\kappa(t)=2{,}65\%[/math]. Dies ist bzgl. der maximalen Abweichung etwa 50 mal schlechter als die Viertelkreisapproximation.

Gebrochenrationale Bézierkurve

Gebrochenrationale Bézierkurven können vereinfacht als Bézierkurven betrachtet werden, deren Kontrollpunkte [math]P_i[/math] mit Gewichten/Anziehungskräften [math]w_i[/math] versehen sind und die damit den Kurvenverlauf in ihre Richtung hin beeinflussen.

Dazu stellt man die Bézierkurve mittels homogener Koordinaten [math]\overline{P}_i = w_i \bigl(\begin{smallmatrix} P_i\\ 1 \end{smallmatrix} \bigr)[/math] im projektiven Raum dar.

[math]\overline{C}(t) \ = \ \sum_{i=0}^n B_{i,n}(t) \overline{P}_i \ = \ \begin{pmatrix} \sum_{i=0}^n B_{i,n}(t) w_i P_i \\ \sum_{i=0}^n B_{i,n}(t) w_i \end{pmatrix} [/math]

Die Bezeichnung als gebrochenrationale Bézierkurven ergibt sich aus der Rücktransformation (Dehomogenisierung oder Projektion) in den Ursprungsraum, was praktisch durch das Teilen der zusätzlichen Komponente erfolgt.

[math]C(t) \ = \ \frac{\sum_{i=0}^n B_{i,n}(t) w_i P_i}{\sum_{i=0}^n B_{i,n}(t) w_i}[/math]

Genese

Nach der Transformation in den projektiven Raum wird die Kurve nach dem normalen Bildungsgesetz erzeugt und anschließend wieder in den Ursprungsraum zurück transformiert.

Projektiver Raum und homogene Koordinaten

Die Transformation der Kontrollpunkte in den projektiven Raum mittels ihrer Gewichte verändert im Allgemeinen (also wenn nicht alle Gewichte gleich 1 sind) die Lage der Kontrollpunkte zueinander, verzerrt also das Kontrollpolygon. Diese Verzerrung wirkt sich nun so aus, dass die Kurve sich in der zurücktransformierten Darstellung den Punkten mit höherer Gewichtung stärker nähert.

Veranschaulichen kann man sich dies, indem man zunächst eine 2-dimensionale Bézierkurve im 3-dimensionalen Raum (projektiver Raum) in der [math]z = 1[/math] Ebene (Ursprungsraum) zeichnet. Wobei die [math]z[/math]-Komponente die zusätzliche homogene Komponente darstellen soll.

[math]\overline{P}_i = w_i \bigl(\begin{smallmatrix} \bigl(\begin{smallmatrix} x\\ y \end{smallmatrix} \bigr) = P_i\\ z = 1 \end{smallmatrix} \bigr)[/math]

Demnach sind die Gewichte [math]w_i = 1[/math] zu setzen. Fasst man die homogenen Kontrollpunkte [math]\overline{P}_i[/math] als Ortsvektoren des projektiven Raums auf, so entfernen sich diese mit zunehmenden Gewichten [math]w_i \gt 1[/math] vom Ursprung. Die Bézierkurve verlässt also die [math]z = 1[/math] Ebene und wird 3-dimensional. Eine Rücktransformation auf die Projektionsebene [math]z = 1[/math] führt zu einer, zu den stärker gewichteten Kontrollpunkten hingezogenen, rationalen Bézierkurve.

Weblinks

Vier Stützpunkte

Mehr als vier Stützpunkte

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
  • 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, Comput. Aided Geom. Des. 1, S. 1-60, 1984

Kategorien: Keine Kategorien vorhanden!

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Bézierkurve (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.