03.11.2013 Aufrufe

Seminar über Numerische Mathematik - Universität Kassel

Seminar über Numerische Mathematik - Universität Kassel

Seminar über Numerische Mathematik - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Andreas Meister<br />

<strong>Seminar</strong> <strong>über</strong> <strong>Numerische</strong> <strong>Mathematik</strong><br />

<strong>Seminar</strong> im Wintersemester 2008/2009<br />

<strong>Universität</strong> <strong>Kassel</strong><br />

Fachbereich <strong>Mathematik</strong>


Inhaltsverzeichnis<br />

Bezier-Kurven 1<br />

1 Einleitung 1<br />

2 Der Algorithmus von de-Casteljau 2<br />

2.1 Parabeln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2<br />

2.2 Der de-Casteljau-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 3<br />

3 Die Bernsteinform einer Bezier-Kurve 4<br />

3.1 Bernsteinpolynome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

3.2 Eigenschaften von Bezier-Kurven . . . . . . . . . . . . . . . . . . . . . 6<br />

4 Ableitungen von Bezier-Kurven 8<br />

4.1 Die Ableitung einer Bezier-Kurve . . . . . . . . . . . . . . . . . . . . . 8<br />

4.2 Ableitungen höherer Ordnung . . . . . . . . . . . . . . . . . . . . . . . 10<br />

4.3 Ableitungen und der de-Casteljau-Algorithmus . . . . . . . . . . . . . . 11


iv<br />

Inhaltsverzeichnis


<strong>Seminar</strong> <strong>über</strong> <strong>Numerische</strong> <strong>Mathematik</strong><br />

Wintersemester 2008/2009, S. 1–13<br />

Bezier-Kurven<br />

Hamid Fetouaki, Emma Skopin<br />

Zusammenfassung: Diese Ausarbeitung beschreibt die Vorgehensweisen zur Bestimmung<br />

von Bezier-Kurven. Diese werden mit dem von de-Casteljau entwickelten Algorithmus und mit<br />

der von Bezier erfundenen Rekursionsformel mittels Bernsteinpolynomen bestimmt. Hinzu<br />

kommen die wichtigen Eigenschaften dieser Kurven. Schließlich führen wir deren Ableitungen<br />

ein.<br />

1 Einleitung<br />

Die geschichtliche Entwicklung der Bezier-Kurven beginnt in den späten 50er Jahren<br />

in der Autoindustrie. Vor der Entwicklung der Bezier-Kurven zeichneten die Designer<br />

Kurven am Papier durch Kurvenlineale. Ausgehend von den Skizzen wurden in zeitaufwendigen<br />

Prozessen maßstäbliche Modelle aus Holz und Ton gefertigt. Ein finales<br />

Master-Modell aus Gips wurde schließlich für die Kopiermaschinen eingesetzt. Seit 1955<br />

wurden die ersten sog. NC(Numerical Control)-Maschinen entwickelt und eingesetzt.<br />

Diese konnten geometrische Daten aus einem Rechner interpretieren und auf Werkzeuge<br />

<strong>über</strong>tragen.<br />

Paul de-Casteljau, der bei Citroën tätig war, entwickelte 1959 ein einfaches und<br />

schnell berechenbares Konstruktionsprinzip für Kurven und gekrümmte Oberflächen.<br />

Parallel entdeckte Pierre Bezier, der für Renault arbeitete, 1962 unabhängig von de-<br />

Casteljau dieselbe Formel. Es folgte ein Rechtsstreit, der durch einen Vergleich beigelegt<br />

wurde: Die allgemeine Formel und damit die Kurven wird folglich nach Pierre Bezier<br />

benannt (Bernstein-Bezier-Polynom, Bezier-Kurve/Fläche) und das zugrunde liegende<br />

Konstruktionsprinzip wird nach de-Casteljau (de-Casteljau-Algorithmus) benannt.<br />

Die Entwicklungen von Bezier und de-Casteljau werden als Grundlage für ein CAD-<br />

Programm benutzt. Bereits wenige Jahre später konnten die Bezier-Kurven unmittelbar<br />

zur Steuerung von NC-Fräsen herangezogen werden.<br />

Die Entwicklung von Bezier und de-Casteljau gaben Anstoß zu parallelen Weiterentwicklungen<br />

in anderen Industriebereichen wie Schiffsbau und Luftfahrt.


2 Hamid Fetouaki, Emma Skopin<br />

2 Der Algorithmus von de-Casteljau<br />

Der de-Casteljau-Algorithmus ist die Grundlage vieler Algorithmen im Gebiet von<br />

Kurven- und Flächendesign. Seine Bedeutung liegt insbesondere im Zusammenspiel<br />

zwischen Geometrie und Algebra.<br />

2.1 Parabeln<br />

Wir beschreiben eine einfache Konstruktion zum Erzeugen einer Parabel, die dann<br />

durch Verallgemeinerung zu den Bezier-Kurven führen wird. Seien nun b 0 , b 1 , b 2 drei<br />

beliebige Punkte im E 3 , und sei t ∈ R. Wir bilden nun:<br />

Durch einsetzen von (1) und (2) in (3) erhalten wir:<br />

b 1 0 (t) = (1 − t) b 0 + tb 1 , (1)<br />

b 1 1 (t) = (1 − t) b 1 + tb 2 , (2)<br />

b 2 0 (t) = (1 − t) b 1 0 (t) + tb 1 1 (t) . (3)<br />

b 2 0 (t) = (1 − t) b 1 0 (t) + tb 1 1 (t)<br />

= (1 − t) [(1 − t) b 0 + tb 1 ] + t[(1 − t) b 1 + tb 2 ]<br />

= (1 − t) 2 b 0 + 2t (1 − t) b 1 + t 2 b 2 .<br />

b 2 0(t) ist ein quadratischer Ausdruck in t (der hochgestellte Index gibt den Grad an),<br />

und für t ∈ (−∞, ∞) erzeugt er somit eine Parabel, die wir mit b 2 bezeichnen. Diese<br />

Konstruktion ist nichts weiter als wiederholte lineare Interpolation. Des weiteren stellen<br />

wir fest, dass Parabeln immer ebene Kurven sind, da b 2 (t) immer eine baryzentrische<br />

Kombination dreier Punkte ist. Diese ist als gewichtete Summe von Punkten definiert,<br />

wobei die Gewichte sich zu Eins aufaddieren müssen.<br />

Abbildung 1: Konstruktion einer Parabel durch wiederholte lineare Interpolation.


2.2 Der de-Casteljau-Algorithmus<br />

Bezier-Kurven 3<br />

Die Verallgemeinerung des oben genannten Verfahrens führt uns auf die Konstruktion<br />

beliebiger polynomialer Kurven mit beliebigem Grad n.<br />

de-Casteljau-Algorithmus:<br />

Gegeben:<br />

Setze:<br />

b 0 , b 1 , b 2 , . . . , b n ∈ E 3 , t ∈ R,<br />

{<br />

b r i (t) = (1 − t) b r−1<br />

i (t) + tb r−1<br />

i+1 (t) für r ∈ {1, . . . , n} und<br />

i ∈ {0, . . . , n − r}<br />

(4)<br />

b 0 i (t) = b i . (5)<br />

Ausgabe:<br />

b n 0(t) ist der Punkt auf der Bezier-Kurve b n , der dem Parameterwert t entspricht.<br />

Das Polygon P , das durch die Punkte b 0 , b 1 , . . . , b n dargestellt wird, wird Bezierpolygon<br />

oder Kontrollpolygon der Kurve b n genannt. Die Polygonecken b i werden Kontrollpunkte<br />

oder Bezierpunkte genannt. Die Zwischenpunkte b r i (t) können wir in<br />

einer Dreiecksform anordnen, dem sogenannten de-Casteljau-Schema. Als Beispiel<br />

betrachten wir den Fall für eine planare kubische Kurve an der Stelle t = 1 2 :<br />

[ 0<br />

b 0 =<br />

0<br />

[ 0<br />

b 1 =<br />

2<br />

[ 8<br />

b 2 =<br />

2<br />

[ 4<br />

b 3 =<br />

0<br />

]<br />

]<br />

]<br />

]<br />

[ 0<br />

b 1 0 =<br />

1<br />

[ 4<br />

b 1 1 =<br />

2<br />

[ 6<br />

b 1 2 =<br />

1<br />

]<br />

]<br />

]<br />

b 2 0 =<br />

b 2 1 =<br />

[ 2<br />

3<br />

2<br />

[ 5<br />

3<br />

2<br />

]<br />

]<br />

b 3 0 =<br />

[ 7<br />

2<br />

3<br />

2<br />

]<br />

Abbildung 2: Das Berechnen eines Punktes auf einer Bezier-Kurve mit dem de-<br />

Casteljau-Algorithmus.


4 Hamid Fetouaki, Emma Skopin<br />

3 Die Bernsteinform einer Bezier-Kurve<br />

3.1 Bernsteinpolynome<br />

Definition 3.1 Das i-te Bernsteinpolynom vom Grad n ist definiert durch:<br />

( ) n<br />

Bi n (t) := t i (1 − t) n−i . (6)<br />

i<br />

Satz 3.2<br />

1. Bernsteinpolynome genügen folgender Rekursionsformel:<br />

mit<br />

B n i (t) = (1 − t)B n−1<br />

i<br />

(t) + tB n−1<br />

i−1 (t) (7)<br />

B 0 0(t) ≡ 1 und (8)<br />

B n j (t) ≡ 0 für j /∈ {0, . . . , n}. (9)<br />

2. Die Bernsteinpolynome bilden eine Teilung der Eins, d.h. es gilt:<br />

Beweis:<br />

n∑<br />

Bj n (t) ≡ 1. (10)<br />

j=0<br />

1. Es gilt: ( ) (<br />

n<br />

i = n−1<br />

) (<br />

i + n−1<br />

( ) n<br />

Bi n (t) = t i (1 − t) n−i<br />

( i ) n − 1<br />

= t i (1 − t) n−i +<br />

( i ) n − 1<br />

= t i (1 − t) n−i−1<br />

i<br />

} {{ }<br />

i−1)<br />

. Für die Bernsteinpolynome gilt somit:<br />

=B n−1<br />

i (t)<br />

= (1 − t)B n−1<br />

i<br />

(t) + tB n−1<br />

i−1 (t).<br />

( ) n − 1<br />

i − 1<br />

t i (1 − t) n−i<br />

( ) n − 1<br />

(1 − t) + t i−1 (1 − t) n−i t<br />

i − 1<br />

} {{ }<br />

=B n−1<br />

i−1 (t)<br />

• B 0 0(t) = ( 0<br />

0)<br />

t 0 (1 − t) 0 = 1<br />

• B n j (t) = 0 für j /∈ {0, . . . , n} nach Definition der Binomialkoeffizienten.<br />

2. Mit Hilfe des binomischen Lehrsatzes folgt:<br />

n∑<br />

Bj n (t) =<br />

j=0<br />

n∑<br />

j=0<br />

( n<br />

j)<br />

t j (1 − t) n−j = (t + 1 − t) n = 1.


Bezier-Kurven 5<br />

Abbildung 3: Die quartischen Bernsteinpolynome.<br />

Beispiel: Die Bernsteinpolynome vom Grad 4<br />

□<br />

Satz 3.3 Für die Zwischenpunkte b r i , die beim de-Casteljau-Algorithmus auftreten, gilt:<br />

{<br />

r∑<br />

b r i (t) = b i+j Bj r r ∈ {0, . . . , n} und<br />

(t), für<br />

(11)<br />

i ∈ {0, . . . , n − r}.<br />

j=0<br />

Für r = n, ist der de-Casteljau-Punkt gerade der Punkt auf der Kurve, und ist gegeben<br />

durch:<br />

n∑<br />

b n (t) = b n 0 (t) = b j Bj n (t). (12)<br />

Beweis: Induktion <strong>über</strong> r<br />

IA: r = 0<br />

j=0<br />

b 0 i (t) (5)<br />

= b i<br />

(8)<br />

= b i B 0 0(t) =<br />

IV: Die Behauptung gelte für r − 1<br />

IS: r − 1 → r<br />

Für r = 1, . . . , n und i = 0, . . . , n − r gilt:<br />

0∑<br />

b i+j Bj 0 (t).<br />

j=0<br />

b r i (t)<br />

(4)<br />

= (1 − t) b r−1<br />

i<br />

(IV )<br />

= (1 − t) r−1 ∑<br />

j=0<br />

j=i<br />

(t) + tb r−1<br />

i+1 (t)<br />

b i+j B r−1<br />

j<br />

(t) + t r−1 ∑<br />

j=0<br />

= (1 − t) i+r−1 ∑<br />

b j B r−1<br />

i+r ∑<br />

j−i (t) + t<br />

(9)<br />

= (1 − t) i+r−1 ∑<br />

j=i<br />

= (1 − t) i+r ∑<br />

j=i<br />

b j B r−1<br />

j−i<br />

b j B r−1<br />

j−i<br />

j=i+1<br />

(t) + (1 − t)Br−1 r<br />

i+r ∑<br />

(t) + t<br />

j=i<br />

b i+1+j B r−1<br />

j (t)<br />

b j B r−1<br />

j−i−1 (t)<br />

b j B r−1<br />

j−i−1 (t)<br />

= i+r ∑ [<br />

]<br />

b j (1 − t)B r−1<br />

j−i (t) + tBr−1 j−i−1 (t)<br />

j=i<br />

∑<br />

= r [<br />

]<br />

b j+i (1 − t)B r−1<br />

j (t) + tB r−1<br />

j−1 (t)<br />

j=0<br />

(7) ∑<br />

= r<br />

j=0<br />

b j+i B r j (t).<br />

(t) + t i+r ∑<br />

j=i+1<br />

b j B r−1<br />

j−i−1 (t) + tBr−1<br />

(t)<br />

Die Formel (12) ergibt sich durch direktes Einsetzen von r = n in (11).<br />

□<br />

Bemerkung 3.4 Bezier-Kurven sind baryzentrische Kombinationen der Kontrollpunkte.


6 Hamid Fetouaki, Emma Skopin<br />

Beweis:<br />

Folgt aus Satz 3.3, Definition von baryzentrischen Kombinationen und (10).<br />

□<br />

Satz 3.5 Bezier-Kurven lassen sich mittels der Zwischenpunkte b r i wie folgt darstellen:<br />

r∑<br />

b n (t) = b n−r<br />

i (t)Bi r (t), wobei r ∈ {0, . . . , n}. (13)<br />

i=0<br />

D.h. berechne zuerst n − r Stufen des de-Casteljau-Algorithmus in Abhängigkeit von t,<br />

betrachte die resultierenden Punkte b n−r<br />

i (t) als Kontrollpunkte einer Bezier-Kurve vom<br />

Grad r, und werte diese an der Stelle t aus.<br />

Beweis: Induktion <strong>über</strong> r<br />

IA: r = 0<br />

b n (t) = b n 0(t) (8)<br />

= b n 0(t)B 0 0 (t) =<br />

0∑<br />

i=0<br />

b n−0<br />

i (t)Bi 0 (t).<br />

IV: Die Behauptung gelte für ein beliebiges aber festes r ∈ {0, . . . , n − 2}, sonst ist (4)<br />

nicht anwendbar.<br />

IS: r → r + 1<br />

Somit:<br />

∑<br />

b n (t) = r (t)Bi r (t)<br />

∑<br />

= r [<br />

i=0<br />

(4)<br />

i=0<br />

b n−r<br />

i<br />

= (1 − t) r ∑<br />

(1 − t)b n−r−1<br />

i<br />

i=0<br />

(9)<br />

= (1 − t) r+1 ∑<br />

= r+1 ∑<br />

i=0<br />

= r+1 ∑<br />

]<br />

(t) + tb n−r−1<br />

i+1 (t) Bi r (t)<br />

∑<br />

b n−r−1<br />

i (t)Bi r (t) + t r<br />

b n−r−1<br />

i=0<br />

b n−(r+1)<br />

i (t)<br />

b n−(r+1)<br />

i (t)B r+1<br />

i<br />

i=0<br />

i=0<br />

b n−r−1<br />

i+1 (t)B r i (t)<br />

i (t)Bi r (t) + t r+1 ∑<br />

b n−r−1<br />

i (t)Bi−1(t)<br />

r<br />

i=0<br />

[<br />

]<br />

(1 − t)Bi r (t) + tBi−1(t)<br />

r<br />

} {{ }<br />

(t).<br />

=B r+1<br />

i (t)<br />

Somit ist die Behauptung für r ∈ {0, . . . , n−1} gezeigt. Für r = n folgt die Behauptung<br />

direkt aus (12) unter Anwendung von (5).<br />

□<br />

3.2 Eigenschaften von Bezier-Kurven<br />

Affine Invarianz:<br />

Definition 3.6 Eine Abbildung Φ : E 3 → E 3 heißt affine Abbildung, wenn sie baryzentrische<br />

Kombinationen invariant lässt. Sei also x = ∑ α j a j ; x, a j ∈ E 3 eine baryzentrische<br />

Kombination und Φ eine affine Abbildung, dann ist Φ(x) = ∑ α j Φ(a j ), Φ(x),<br />

Φ(a j ) ∈ E 3 .


Bezier-Kurven 7<br />

Die affine Invarianz folgt daraus, dass die Bezier-Kurven baryzentrische Kombinationen<br />

der Kontrollpunkte sind. Das heißt, dass die beiden folgenden Vorgehensweisen dasselbe<br />

Resultat liefern: (1) Berechne erst den Punkt b n (t) und wende anschließend eine affine<br />

Abbildung darauf an; (2) Wende zuerst die affine Abbildung auf das Kontrollpolygon<br />

an und werte das transformierte Kontrollpolygon am Parameterwert t aus.<br />

Invarianz unter affinen Parametertransformationen:<br />

Es ist bequemer ein Parameter t aus dem Intervall [0, 1] zu nehmen. Aber natürlich kann<br />

man auch ein Parameter u ∈ [a, b] nehmen und lokale Koordinaten t = u−a einführen<br />

b−a<br />

und darauf den Algorithmus anwenden.<br />

b n (t) =<br />

n∑<br />

b i Bi n (t) =<br />

i=0<br />

n∑<br />

b i Bi<br />

n<br />

i=0<br />

( u − a<br />

)<br />

.<br />

b − a<br />

Der Übergang vom Intervall [a, b] zum Intervall [0, 1] stellt eine affine Abbildung dar.<br />

Wir können deshalb sagen, dass Bezier-Kurven invariant unter affinen Parametertransformationen<br />

sind.<br />

Konvexe-Hüllen-Eigenschaft:<br />

Diese folgt aus der Tatsache, dass die Bernsteinpolynome für t ∈ [0, 1] nicht-negativ<br />

sind und sich zu Eins aufsummieren.<br />

Endpunkte-Interpolation:<br />

Die Bezier-Kurve verläuft durch die Punkte b 0 und b n . Dies sieht man, indem man t = 0<br />

und t = 1 in (4) oder in (12) einsetzt.<br />

Symmetrie:<br />

Es spielt keine Rolle, ob wir die Bezier-Punkte mit b 0 , b 1 , . . . , b n oder b n , . . . , b 1 , b 0 bezeichnen.<br />

Die entsprechenden Kurven stimmen <strong>über</strong>ein, sie unterscheiden sich nur in<br />

der Richtung, in der sie durchlaufen werden. D.h.<br />

n∑<br />

b j Bj n (t) =<br />

j=0<br />

n∑<br />

b n−j Bj n (1 − t).<br />

j=0<br />

Dies folgt aus der Identität B n j (t) = B n n−j(1 − t). Wir nennen deshalb Bernsteinpolynome<br />

symmetrisch in bezug auf t und 1 − t.<br />

Invarianz unter baryzentrischen Kombinationen:<br />

Gegeben sind zwei Bezier-Kurven b n , c n . Dann gilt für α + β = 1:<br />

n∑<br />

n∑<br />

α b j Bj n (t) + β c j Bj n (t) =<br />

j=0<br />

j=0<br />

n∑<br />

(αb j + βc j )Bj n (t)<br />

j=0<br />

Mit anderen Worten: Wir können das gewichtete Mittel zweier Bezier-Kurven entweder<br />

dadurch berechnen, dass wir das gewichtete Mittel der Kurvenpunkte nehmen, oder


8 Hamid Fetouaki, Emma Skopin<br />

aber indem wir erst das gewichtete Mittel der entsprechenden Kontrollpunkte bilden<br />

und dann die Kurve berechnen.<br />

Lineare Präzision:<br />

Wir nutzen folgende Identität:<br />

n∑<br />

j=0<br />

j<br />

n Bn j (t) = t.<br />

Wir nehmen für die Kontrollpunkte b j gleichmäßig verteilte Punkte auf der Geraden,<br />

welche die Punkte p und q verbindet, d.h.<br />

b j =<br />

(<br />

1 − j )<br />

p + j n n q,<br />

j = 0, . . . , n<br />

Dann gilt:<br />

b n (t)<br />

∑<br />

= n ]<br />

[(1 − j )p + j q B n n n j (t)<br />

= p<br />

j=0<br />

n∑<br />

Bj n (t) −p<br />

j=0<br />

} {{ }<br />

=1<br />

= p + t(q − p)<br />

n∑ j<br />

n Bn j (t) +q<br />

j=0<br />

} {{ }<br />

=t<br />

n∑<br />

j=0<br />

j<br />

n Bn j (t)<br />

} {{ }<br />

=t<br />

In Worten ausgedrückt heißt das: Die Kurve, die durch dieses Polygon erzeugt wird, ist<br />

genau die Gerade zwischen p und q, d.h. die Originalgerade wird reproduziert. Diese<br />

Eigenschaft wird lineare Präzision genannt.<br />

Pseudo-lokale-Kontrolle:<br />

Das Bernsteinpolynom Bi n (t) besitzt nur ein Maximum und nimmt dieses an der Stelle<br />

t = i an. Dies hat Einfluß auf das Design von Kurven: Wenn wir nur eine der<br />

n<br />

Polygonecken b i verändern, dann ist die Änderung der Kurve im Bereich um den Parameterwert<br />

i am stärksten.<br />

n<br />

4 Ableitungen von Bezier-Kurven<br />

4.1 Die Ableitung einer Bezier-Kurve<br />

Satz 4.1 Die Ableitung eines Bernsteinpolynoms B n i (t) ist gegeben durch:<br />

d<br />

dt Bn i (t) = n [ B n−1<br />

i−1 (t) − Bn−1 i (t) ] , wobei i ∈ {0, . . . , n}. (14)


Bezier-Kurven 9<br />

Beweis:<br />

d<br />

dt Bn i (t) =<br />

dt( d ) n<br />

t i (1 − t) n−i<br />

i<br />

( )<br />

( )<br />

n n<br />

= i t i−1 (1 − t) n−i + (−1) t i (n − i)(1 − t) n−i−1<br />

i i<br />

= i · n!<br />

i!(n − i)! ti−1 (1 − t) n−i (n − i)n!<br />

−<br />

i!(n − i)! ti (1 − t) n−i−1<br />

i · n(n − 1)!<br />

=<br />

i(i − 1)!(n − i)! ti−1 (1 − t) n−i (n − i)n(n − 1)!<br />

−<br />

i!(n − i)(n − i − 1)! ti (1 − t) n−i−1<br />

[ ( )<br />

(<br />

n − 1<br />

n − 1<br />

]<br />

= n t i−1 (1 − t) n−i −<br />

)t i (1 − t) n−i−1<br />

i − 1<br />

i<br />

= n [ B n−1<br />

i−1 (t) − Bn−1 i (t) ] .<br />

Satz 4.2 Für eine Bezier-Kurve b n (t) gilt folgendes:<br />

d ∑n−1<br />

dt bn (t) = n [b j+1 − b j ]B n−1<br />

j (t). (15)<br />

j=0<br />

□<br />

Beweis:<br />

d<br />

dt bn (t)<br />

n∑<br />

(12)<br />

= d b j Bj n (t)<br />

dt j=0<br />

∑<br />

= n d<br />

b j<br />

dt Bn j (t)<br />

j=0<br />

(14)<br />

= n ∑<br />

j=0<br />

= n n ∑<br />

j=0<br />

(9) ∑<br />

= n n<br />

= n n−1 ∑<br />

b j<br />

(<br />

n[B n−1<br />

j−1<br />

B n−1<br />

j−1 (t)b j − n n ∑<br />

B n−1<br />

j=1<br />

j=0<br />

j=0<br />

)<br />

(t) − Bn−1 j (t)]<br />

j=0<br />

j−1 (t)b j − n n−1 ∑<br />

B n−1<br />

j<br />

j=0<br />

(t)b j+1 − n n−1 ∑<br />

B n−1<br />

j (t)b j<br />

B n−1<br />

j (t)b j<br />

j=0<br />

= n n−1 ∑ [ ]<br />

bj+1 − b j B<br />

n−1<br />

j (t).<br />

B n−1<br />

j (t)b j<br />

□<br />

Definition 4.3 Der Vorwärtsdifferenzenoperator △ r ist definiert durch:<br />

{<br />

△ r △ r−1 b j+1 − △ r−1 b j , für r ∈ N<br />

b j :=<br />

b j , für r = 0.<br />

(16)


10 Hamid Fetouaki, Emma Skopin<br />

Mit der obigen Definition erhalten wir für die Ableitung einer Bezier-Kurve:<br />

d ∑n−1<br />

dt bn (t) = n △ 1 b j B n−1<br />

j (t); △ 1 b j ∈ R 3 . (17)<br />

j=0<br />

Die Ableitung einer Bezier-Kurve ist somit selbst wieder eine Bezier-Kurve, deren Bezierpolygon<br />

(Kontrolpolygon) durch Differenzieren des ursprünglichen Polygons gegeben<br />

ist. Man beachte jedoch, dass die Ableitungs-Bezier-Kurve nicht mehr in E 3 lebt!<br />

Denn Ihre Koeffizienten sind Differenzen von Punkten, also Vektoren. Diese sind Elemente<br />

des R 3 . Um die Ableitungskurve mit ihrem Polygon in E 3 darzustellen, konstruieren<br />

wir ein Polygon in E 3 , welches aus den Punkten a + △b 0 , . . . , a + △b n besteht,<br />

wobei a ∈ E 3 beliebig. Eine mögliche Wahl wäre a = 0, für dieses a wird manchmal die<br />

Bezier-Kurve Hodograph genannt.<br />

Abbildung 4: Eine Bezier-Kurve und ihre erste Ableitung als Kurve (verkleinert um<br />

Faktor drei).<br />

4.2 Ableitungen höherer Ordnung<br />

Beispiel: Berechnung der ersten Vorwärtsdifferenzen:<br />

△ 0 b i<br />

△ 1 b i<br />

△ 2 b i<br />

△ 3 b i<br />

= b i<br />

= b i+1 − b i<br />

= △ 1 b i+1 − △ 1 b i = b i+2 − 2b i+1 + b i<br />

= △ 2 b i+1 − △ 2 b i = b i+3 − 3b i+2 + 3b i+1 − b i<br />

Satz 4.4 Die Vorwärtsdifferenzen lassen sich berechnen durch:<br />

△ r b i =<br />

r∑<br />

j=0<br />

( r<br />

j)<br />

(−1) r−j b i+j . (18)<br />

Beweis: Induktion <strong>über</strong> r<br />

IA: r = 0<br />

△ 0 b i = b i =<br />

( 0<br />

0)<br />

(−1) 0 b i =<br />

0∑<br />

j=0<br />

( 0<br />

j)<br />

(−1) 0−j b i+j .


IV: Die Behauptung gelte für ein beliebiges aber festes r<br />

IS: r → r + 1<br />

Bezier-Kurven 11<br />

△ r+1 (16)<br />

b i = △ r b<br />

( i+1 )<br />

− △ r b i<br />

( )<br />

(IV ) ∑<br />

= r r ∑<br />

(−1) r−j b i+1+j − r r<br />

(−1) r−j b i+j<br />

j=0<br />

(<br />

j<br />

)<br />

j=0 j<br />

( )<br />

= r+1 ∑ r<br />

∑<br />

(−1) r−(j−1) b i+j + r r<br />

(−1) r−j+1 b i+j<br />

j=1<br />

(<br />

j − 1<br />

)<br />

(<br />

j=0 j<br />

)<br />

∑<br />

= r r<br />

(−1) r−j+1 r<br />

b i+j +<br />

(−1) r−(r+1−1) b i+r+1<br />

j=1 j − 1<br />

r + 1 − 1<br />

} {{ }<br />

= b i+r+1<br />

( ( )<br />

r ∑<br />

+ (−1)<br />

0)<br />

r+1−0 b i + r r<br />

(−1) r−j+1 b i+j<br />

j=1 j<br />

} {{ }<br />

= (−1) r+1 b i<br />

(<br />

∑<br />

= (−1) r+1 b i + (−1) (r+1)−(r+1) b i+r+1 + r r + 1<br />

( )<br />

j=1 j<br />

= r+1 ∑ r + 1<br />

(−1) r+1−j b i+j .<br />

j=0<br />

j<br />

Satz 4.5 Für die r − te Ableitung einer Bezier-Kurve gilt:<br />

d r<br />

dt r bn (t) =<br />

n! ∑n−r<br />

(n − r)!<br />

j=0<br />

)<br />

(−1) r+1−j b i+j<br />

△ r b j B n−r<br />

j (t). (19)<br />

□<br />

Beweis: Durch wiederholte Anwendung von (17).<br />

□<br />

4.3 Ableitungen und der de-Casteljau-Algorithmus<br />

Satz 4.6 Die Ableitungen einer Bezier-Kurve können durch die Zwischenpunkte, die<br />

beim de-Casteljau-Algorithmus auftreten, folgendermaßen ausgedrückt werden:<br />

Beweis:<br />

d r<br />

dt r b n(t) =<br />

n!<br />

(n − r)! △r b n−r<br />

0 (t). (20)<br />

Zuerst zeigen wir, dass Summation und Differenzenbildung kommutieren:<br />

∑n−1<br />

∑n−1<br />

△b j = [b j+1 − b j ] =<br />

j=0<br />

j=0<br />

n∑ ∑n−1<br />

∑n−1<br />

b j − b j = △ b j .<br />

j=1 j=0<br />

j=0


12 Hamid Fetouaki, Emma Skopin<br />

Somit erhalten wir:<br />

d r<br />

dt r bn (t) =<br />

=<br />

=<br />

n! ∑n−r<br />

(n − r)!<br />

j=0<br />

△ r b j B n−r<br />

j (t)<br />

n! ∑n−r<br />

(n − r)! △r b j B n−r<br />

j (t)<br />

j=0<br />

n!<br />

(n − r)! △r b n−r<br />

0 (t).<br />

(19) und (20) liefern uns zwei verschiedene Methoden, die r-te Ableitung einer Bezier-<br />

Kurve zu berechnen. Die Methode (19) besteht darin, alle r-ten Vorwärtsdifferenzen<br />

der Kontrollpunkte zu bilden, diese als ein neues Bezierpolygon vom Grad n − r zu<br />

interpretieren und dies an der Stelle t auszuwerten. Die Methode (20) besteht aus der<br />

Berechnung der r-ten Ableitung als ein Nebenprodukt des de-Casteljau-Algorithmus.<br />

Beispiel: Zwei Methoden, Ableitungen zu berechnen:<br />

Um die Ableitung der Bezier-Kurve aus dem ersten Beispiel zu berechnen, bilden wir<br />

zuerst die ersten Differenzen der Kontrollpunkte:<br />

□<br />

[ 0<br />

△b 0 = b 1 − b 0 =<br />

2<br />

[ 8<br />

△b 1 = b 2 − b 1 =<br />

2<br />

[ 4<br />

△b 2 = b 3 − b 2 =<br />

0<br />

] [ 0<br />

−<br />

0<br />

] [ 0<br />

−<br />

2<br />

] [ 8<br />

−<br />

2<br />

] [ 0<br />

=<br />

2<br />

] [ 8<br />

=<br />

0<br />

]<br />

=<br />

]<br />

,<br />

]<br />

,<br />

[ −4<br />

−2<br />

]<br />

.<br />

Dann werten wir die entstehende quadratische Kurve an der Stelle t = 1 2 aus:<br />

B 2 0<br />

( 1<br />

=<br />

2)<br />

1 ( 1<br />

4 , B2 1 =<br />

2)<br />

1 ( 1<br />

2 , B2 2 =<br />

2)<br />

1 4 .<br />

Somit erhalten wir:<br />

d<br />

( 1<br />

)<br />

dt b3 = 3! 1 0<br />

]<br />

+<br />

2 2!(<br />

4[ 1 [ 8<br />

2 2 2<br />

]<br />

+ 1 4<br />

[ −4<br />

−2<br />

]) [ 9<br />

=<br />

0<br />

]<br />

.<br />

Als Alternative berechnen wir △b 2 0( 1 2 ):<br />

△b 2 0<br />

( 1<br />

( 1<br />

( 1<br />

= b<br />

2)<br />

2 1 − b<br />

2)<br />

2 0 =<br />

2)<br />

[ 5<br />

3<br />

2<br />

]<br />

−<br />

[ 2<br />

3<br />

2<br />

] [ 3<br />

=<br />

0<br />

]<br />

.<br />

Multiplikation mit 3 liefert das Ergebnis.


Bezier-Kurven 13<br />

Literatur<br />

[1] G. Farin. Curves and surfaces for computer aided geometric design. Academ.<br />

Press, Boston, 1988.<br />

[2] G. Farin. Kurven und Flächen im Computer Aided Geometric Design. Vieweg.,<br />

Braunschweig/Wiesbaden, 1994.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!