Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich...

87
Diplomarbeit Knoteneinsetzalgorithmen und das Blossoming-Prinzip

Transcript of Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich...

Page 1: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Diplomarbeit

Knoteneinsetzalgorithmenund das

Blossoming-Prinzip

Page 2: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber
Page 3: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Universität Duisburg-Essen SS 2006Fachbereich MathematikCampus Duisburg

Diplomarbeit

Knoteneinsetzalgorithmenund das

Blossoming-Prinzip

Michael Wozniczka

1. August 2006

Betreut durch Prof. Dr. dr. h. c. Heinz H. Gonska.

Page 4: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

In dieser Fassung wurden bis zum 01. August 2007 bekannt gewordeneFehler korrigiert.

Eine Kopie des der Originalarbeit beiliegenden Datenträgers kann unter derE-Mail-Adresse [email protected] direkt beim Autorangefordert werden.

Die in der Arbeit vorgestellte graphische Benutzeroberfläche lässt sich auchim Internet über einen Link auf der Seite http://www.uni-due.de/mathematik/aggonska/wozniczka.shtml starten.

Page 5: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Meinen Eltern.

Page 6: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber
Page 7: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Knoteneinsetzalgorithmen für polynomiale Spline-Kurven in B-Spline-Dar-stellung haben vielfältige Anwendungen in der geometrischen Datenverar-beitung, sind aber auch von theoretischem Interesse.

Zwei allgemein bekannte Verfahren sind der Algorithmus von Böhm [7] undder Oslo-Algorithmus (2) von Cohen, Lyche und Riesenfeld [16]. Beide Me-thoden wurden fast zeitgleich im Jahre 1980 veröffentlicht.

Im Gegensatz zu Böhms Methode erlaubt der Oslo-Algorithmus das si-multane Einfügen vieler Knoten. Aus diesem Grunde wird ihm häufig einegewisse Überlegenheit zugeschrieben. Eine eingängige, zusammenhängen-de und lückenlose Herleitung des Verfahrens ist jedoch nicht bekannt.

Ziel dieser Diplomarbeit ist es, die Korrektheit des Oslo-Algorithmus undverwandter Verfahren vollständig und anschaulich in einheitlicher Notationzu beweisen. Außerdem sollen alle Methoden implementiert werden.

Im ersten Kapitel werden Grundlagen über Hermite-Interpolation, divi-dierte Differenzen und B-Splines wiederholt und vertieft.

Anschließend betrachten wir eine von de Casteljau [15] eingeführte undvon Ramshaw [42] einem breiten Publikum zugänglich gemachte Techniknamens Blossoming. Das Blossoming-Prinzip beschreibt eine Äquivalenzbe-ziehung zwischen Polynomen und symmetrischen, multiaffinen Funktio-nen, genannt Polarformen oder auch Blossoms. Sind gewisse Werte einer sol-chen Polarform bekannt, so erlaubt der Blossoming-Algorithmus diese mittelseiner Folge von Affinkombinationen an beliebigen Stellen auszuwerten. AmEnde des zweiten Kapitels wenden wir das Blossoming-Prinzip auf die po-lynomialen Segmente normalisierter B-Splines an und erhalten nach Rams-haw [42] und Seidel [51] eine Verallgemeinerung der Identität von Mansfield.Daraus ergibt sich ein Zusammenhang zwischen den Kontrollpunkten einerSpline-Kurve und gewissen Werten zugehöriger Polarformen.

Im dritten Kapitel nutzen wir die gewonnenen Erkenntnisse, um das Kno-teneinsetzproblem zu lösen. Wir betrachten den Algorithmus von Böhm,liefern einen einfachen Beweis für den Oslo-Algorithmus und modifizierendiesen zu einem neuen Verfahren mit reduzierter Komplexität. Bevor wir imExperiment Rechenaufwand, Laufzeit und Fehlerverhalten dieser punktori-entierten Methoden vergleichen, gehen wir noch kurz auf Matrix-Verfahrenein.

Schließlich beschreiben wir im letzten Teil der Arbeit die Implementie-rung der behandelten (punktorientierten) Algorithmen, zusammengefasstin einer generischen Java-Bibliothek, und stellen eine interaktive graphischeBenutzeroberfläche vor, die das Knoteneinsetzen visualisiert.

Page 8: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber
Page 9: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Inhaltsverzeichnis

1 Grundlagen 31.1 Einige Bezeichnungen . . . . . . . . . . . . . . . . . . . . . . . 31.2 Hermite-Interpolation . . . . . . . . . . . . . . . . . . . . . . . 51.3 Dividierte Differenzen . . . . . . . . . . . . . . . . . . . . . . . 111.4 B-Splines und abgeschnittene Potenzen . . . . . . . . . . . . . 141.5 Spline-Kurven und das Knoteneinsetzproblem . . . . . . . . . 22

2 Blossoming 252.1 Polarformen und das Blossoming-Prinzip . . . . . . . . . . . . 262.2 Der Blossoming-Algorithmus . . . . . . . . . . . . . . . . . . . 302.3 B-Splines und Polarformen . . . . . . . . . . . . . . . . . . . . 36

3 Knoteneinsetzalgorithmen 453.1 Der Algorithmus von Böhm . . . . . . . . . . . . . . . . . . . . 463.2 Der Oslo-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . 503.3 Matrix-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 543.4 Ein experimenteller Vergleich . . . . . . . . . . . . . . . . . . . 57

3.4.1 Rechenaufwand . . . . . . . . . . . . . . . . . . . . . . . 583.4.2 Laufzeit . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.4.3 Fehlerverhalten . . . . . . . . . . . . . . . . . . . . . . . 613.4.4 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4 Implementierung 634.1 Eine generische Bibliothek . . . . . . . . . . . . . . . . . . . . . 63

4.1.1 Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1.2 Aufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4.2 Eine graphische Benutzeroberfläche . . . . . . . . . . . . . . . 674.2.1 Werkzeuge . . . . . . . . . . . . . . . . . . . . . . . . . . 674.2.2 Benutzerschnittstelle . . . . . . . . . . . . . . . . . . . . 68

Schlussbemerkungen 71

Literaturverzeichnis 73

1

Page 10: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber
Page 11: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Für unsere Untersuchungen benötigen wir eine gesicherte Grundlage. Indiesem Kapitel wollen wir B-Splines einführen und einige ihrer Eigenschaf-ten erarbeiten. Dabei orientieren wir uns grob an Gonska [23], gehen jedochausführlicher auf Hermite-Interpolation und dividierte Differenzen ein. EinGroßteil des hier präsentierten Materials findet sich mehr oder weniger zu-sammenhängend insgesamt auch in Standardliteratur wie Heuser [24], Stoer[56] und Cohen u. a. [17].

Hier soll das Augenmerk auf einer konsistenten Notation liegen. Dazu le-gen wir im ersten Abschnitt einige Schreibweisen und Begriffe fest. Sodannwenden wir uns dem Hermite-Interpolationsproblem zu und zeigen, dasses eindeutig lösbar ist. Im dritten Teil dieses Kapitels betrachten wir divi-dierte Differenzen und reproduzieren dort unter anderem Lees elegante Be-weise [28] ihrer Rekursionsgleichung sowie Leibniz-Formel. Anschließenddefinieren wir B-Splines klassisch als dividierte Differenzen abgeschnittenerPotenzen. Insbesondere beweisen wir, dass B-Splines stückweise polynomi-al sind und einer Rekursionsgleichung genügen. Zum Schluss stellen wirdas Knoteneinsetzproblem und motivieren unser weiteres Vorgehen.

1.1 Einige Bezeichnungen

Zunächst vereinbaren wir eine kompakte Schreibweise für Indexbereiche.

Definition 1.1.1. Unter einem Intervall ganzer Zahlen mit den Endpunktenl, r ∈ Z verstehen wir die Menge

[l, r]Z := {i ∈ Z : l ≤ i ≤ r} .

Orientiert an Heuser [24], S. 122 fassen wir

Definition 1.1.2. Es seien k ∈N0 und cj ∈ R für j ∈ [0, k]Z. Die Funktion

p : R 3 x 7→k

∑j=0

cjxj ∈ R

heißt (reelles) Polynom vom Höchstgrad k mit den Koeffizienten cj.

3

Page 12: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oderauch das triviale Polynom. Gibt es aber nichtverschwindende Koeffizientenund ist cl derjenige unter ihnen, der den größten Index trägt, so heißt cl derHöchstkoeffizient und l der Grad des Polynoms p.

Den (k + 1)-dimensionalen (Vektor-)Raum der Polynome vom Höchst-grad k ∈N0 bezeichnen wir mit Πk.

Definition 1.1.3. Eine Folge reeller Zahlen

xi,k := (xj)i+kj=i

mit i ∈ Z und k ∈ N0 nennen wir (reelle) Knotensequenz mit dem Inkrementk. Die leere Knotensequenz bezeichnen wir mit xi,−1.

Wie häufig und in welcher Lage Knoten in einer Sequenz x := xi,k−1 miti ∈ Z und k ∈ N0 auftreten, beschreiben wir in Anlehnung an Quak [41],S. 103:

(a) Für einen Index j ∈ [i, i + k− 1]Z heißen

λj,x :=∣∣{l ∈ [i, j]Z : xl = xj

}∣∣die Linksvielfachheit,

ρj,x :=∣∣{l ∈ [j, i + k− 1]Z : xl = xj

}∣∣die Rechtsvielfachheit und

µj,x :=∣∣{l ∈ [i, i + k− 1]Z : xl = xj

}∣∣die Vielfachheit des zugehörigen Knotens xj in der Sequenz x.

(b) Unter der Vielfachheit eines beliebigen Knotens t ∈ R in der Sequenz xverstehen wir die Größe

µx(t) := |{l ∈ [i, i + k− 1]Z : xl = t}| .

Beispiel 1.1.4. Die Knoten in der Sequenz

x := (1, 3, 3, 1, 2, 2, 2, 0)

besitzen die Linksvielfachheiten

λx := (1, 1, 2, 2, 1, 2, 3, 1),

4

Page 13: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.2 Hermite-Interpolation

die Rechtsvielfachheiten

ρx := (2, 2, 1, 1, 3, 2, 1, 1)

und die Vielfachheiten

µx := (2, 2, 2, 2, 3, 3, 3, 1).

Definition 1.1.5. Gegeben sei eine Knotensequenz x := xi,k−1 mit i ∈ Z undk ∈N0. Das Polynom

ωi,k−1,x :=i+k−1

∏j=i

(· − xj)

nennen wir Knotenpolynom zur Sequenz x. Insbesondere ist das Knotenpoly-nom zur leeren Knotensequenz identisch Eins.

Anmerkung 1.1.6. Steht in einer Situation außer Frage, auf welche Knotense-quenz wir uns beziehen, so verzichten wir aus Gründen der Übersichtlich-keit häufig darauf, diese ausdrücklich als Index anzugeben.

1.2 Hermite-Interpolation

Definition 1.2.1. Wir sagen, zwei hinreichend oft differenzierbare Funktio-nen f , g : R → R stimmen bezüglich einer Knotensequenz x := xi,k−1 miti ∈ Z und k ∈N0 (in hermiteschem Sinne) überein, falls für alle l ∈ [0, µj − 1

]Z

und j ∈ [i, i + k− 1]Zf (l)(xj) = g(l)(xj) (1.2.1)

erfüllt ist.

Anmerkung 1.2.2. Mit »hinreichend oft differenzierbar« in Definition 1.2.1 istlediglich gemeint, dass alle in (1.2.1) benötigten Ableitungswerte existieren.

Bemerkung 1.2.3. Es seien x := xi,k−1 mit i ∈ Z, k ∈ N0 eine Knotensequenzund f , g : R → R hinreichend oft differenzierbare Funktionen. Dann sindfolgende Aussagen äquivalent:

(a) Die Funktionen f und g stimmen bezüglich der Knotensequenz x über-ein.

(b) Für alle j ∈ [i, i + k− 1]Z gilt

f (λj−1)(xj) = g(λj−1)(xj).

5

Page 14: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

(c) Für alle j ∈ [i, i + k− 1]Z gilt

f (ρj−1)(xj) = g(ρj−1)(xj).

Beweis. Wegen λj, ρj ≤ µj für alle j ∈ [i, i + k− 1]Z folgen (b) und (c) sofortaus (a).

(b)⇒ (a): Es sei j ∈ [i, i + k− 1]Z beliebig. Besitzt der zugehörige Knotenxj die Vielfachheit µj, so gibt es für jedes l ∈ [0, µj − 1

]Z

einen Knotenxjl = xj in der Sequenz x, so dass λjl − 1 = l. Also ist (b) hinreichend für(a).

(c)⇒ (a): ergibt sich entsprechend.

Ziel dieses Abschnitts ist der Nachweis der eindeutigen Lösbarkeit von

Problem 1.2.4 (Hermite-Interpolation). Gegeben seien eine Knotensequenzx := xi,k mit i ∈ Z, k ∈ N0 und eine hinreichend oft differenzierbare Funk-tion f : R→ R.

Gesucht ist ein Polynom p ∈ Πk, das bezüglich der Sequenz x mit f über-einstimmt.

Fallen alle Knoten in der zugrunde liegenden Sequenz zusammen, so kön-nen wir Problem 1.2.4 direkt lösen (vgl. Heuser [24], A 61.1, S. 357).

Beispiel 1.2.5 (Taylor-Interpolation). Es seien k ∈ N0 und f : R → R eine inx0 ∈ R k-mal differenzierbare Funktion. Das Polynom

Tk :=k

∑j=0

f (j)(x0)j!

(· − x0)j

heißt k-tes Taylor-Polynom von f an der Stelle x0. Differentiation liefert

T(l)k =

k

∑j=l

f (j)(x0)(j− l)!

(· − x0)j−l

=k−l

∑j=0

f (j+l)(x0)j!

(· − x0)j

für l ∈ [0, k]Z. Daraus können wir

T(l)k (x0) = f (l)(x0)

schließen. Folglich stimmt Tk bezüglich der Knotensequenz x0,k := (x0)kj=0

mit f überein.

6

Page 15: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.2 Hermite-Interpolation

Als hilfreich erweist sich folgende Verallgemeinerung einer Aussage vonLee [28], S. 619.

Lemma 1.2.6. Es seien x := xi,k+l−1 mit i ∈ Z und k, l ∈ N0 eine Knotense-quenz und f , g, h : R → R hinreichend oft differenzierbare Funktionen. Stimmenf bezüglich der Teilsequenz y := xi,k−1 mit g und h bezüglich der Teilsequenzz := xi+k,l−1 mit der Nullfunktion überein, so stimmen die Funktionen f h und ghbezüglich der vollen Sequenz x überein.

Beweis. Nach Bemerkung 1.2.3 genügt es zu zeigen, dass

( f h)(λj,x−1)(xj) = (gh)(λj,x−1)(xj) (1.2.2)

für alle j ∈ [i, i + k + l − 1]Z gilt. Nach der Leibniz-Formel für Ableitungen[24, A 48.1, S. 272] erhalten wir

( f h)(λj,x−1)(xj) =λj,x−1

∑r=0

(λj,x − 1

r

)f (r)(xj)h(λj,x−r−1)(xj).

Es sei zunächst j ∈ [i, i + k− 1]Z. Dann folgt (1.2.2) sofort, denn nach Vor-aussetzung ist in diesem Fall

f (r)(xj) = g(r)(xj)

für alle r ∈ [0, λj,x − 1]

Z. Für j ∈ [i + k, i + k + l − 1]Z gilt

λj,x = µy(xj) + λj,z

und wir erhalten

( f h)(λj,x−1)(xj) =µy(xj)−1

∑r=0

(λj,x − 1

r

)f (r)(xj)h(λj,x−r−1)(xj)

+λj,x−1

∑r=µy(xj)

(λj,x − 1

r

)f (r)(xj)h(λj,x−r−1)(xj)

=µy(xj)−1

∑r=0

(λj,x − 1

r

)f (r)(xj)︸ ︷︷ ︸=g(r)(xj)

h(λj,x−r−1)(xj)

+λj,z−1

∑r=0

(λj,x − 1

λj,x − r− 1

)f (λj,x−r−1)(xj) h(r)(xj)︸ ︷︷ ︸

=0

= (gh)(λj,x−1)(xj).

Also ist (1.2.2) auch in diesem Fall richtig. Insgesamt ergibt sich die Behaup-tung.

7

Page 16: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Beispiel 1.2.7. Es sei x := xi,k mit i ∈ Z und k ∈ N0 eine beliebige Knotense-quenz. Dann stimmt das zugehörige Knotenpolynom ωi,k bezüglich dieserSequenz mit der Nullfunktion überein.

Beweis. Für l ∈ [0, k]Z stimmt das Knotenpolynom

ωi+l,0 = (· − xi+l)

bezüglich der Teilsequenz xi+l,0 = (xi+l) mit der Nullfunktion überein. We-gen

ωi,l = ωi,l−1ωi+l,0

für l ∈ [0, k]Z folgt die Behauptung durch sukzessive Anwendung von Lem-ma 1.2.6 mit f := ωi,l−1, g := 0 und h := ωi+l,0.

Einen Beweis des folgenden Hilfssatzes wollen wir nicht vorenthalten.Dabei richten wir uns nach Heuser [24], S. 122 f..

Lemma 1.2.8 (Abspaltung eines Linearfaktors). Es sei p ein Polynom vom Gradk ∈N mit

p(x0) = 0

für ein x0 ∈ R. Dann gibt es ein Polynom q vom Grad k− 1, welches

p = (· − x0)q

erfüllt. Insbesondere stimmen die Höchstkoeffizienten von p und q überein.

Beweis. Wir zeigen zunächst, dass

xj − xj0 = (x− x0)

j−1

∑r=0

xrxj−r−10 (1.2.3)

für alle x ∈ R und beliebiges j ∈N gilt.Für x0 = 0 oder x0 = x ist (1.2.3) sofort klar. Für x0 /∈ {0, x} wenden wir

die geometrische Summenformel [24, A 7.10, S. 65] an. Wir erhalten

xj − xj0 = xj

0

(xx0− 1)

(xx0

)j − 1xx0− 1

= xj−1

0 (x− x0)j−1

∑r=0

(xx0

)r

= (x− x0)j−1

∑r=0

xrxj−r−10 .

8

Page 17: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.2 Hermite-Interpolation

Als Polynom vom Grad k ∈ N besitzt p für alle x ∈ R eine Darstellung derForm

p(x) =k

∑j=0

cjxj

mit gewissen Koeffizienten cj ∈ R, j ∈ [0, k]Z. Anwendung von (1.2.3) undVertauschen der Summationsreihenfolge liefert

p(x) = p(x)− p(x0)

=k

∑j=0

cj

(xj − xj

0

)=

k

∑j=1

cj

(xj − xj

0

)= (x− x0)

k

∑j=1

cj

j−1

∑r=0

xrxj−r−10

= (x− x0)k−1

∑r=0

(k

∑j=r+1

cjxj−r−10

)︸ ︷︷ ︸

=:dr

xr

= (x− x0)k−1

∑r=0

drxr

︸ ︷︷ ︸=:q(x)

.

Dabei ist speziell dk−1 = ck 6= 0. Somit ist q das gesuchte Polynom vom Gradk− 1.

Folgerung 1.2.9. Es seien x := xi,k mit i ∈ Z, k ∈ N0 eine Knotensequenzund p ein Polynom vom Grad l ∈ N0. Stimmt p bezüglich der Sequenz x mit derNullfunktion überein, so gibt es ein Polynom q vom Grad l − (k + 1) ∈ N0, fürdas

p = ωi,kq

gilt. Hierbei bezeichnet ωi,k := ωi,k,x das Knotenpolynom zur Sequenz x.

Beweis. Es sei zunächst k = 0. Nach Voraussetzung ist p nicht das Nullpoly-nom. Wegen

p(xi) = 0

kann p deshalb nicht konstant sein. Folglich ist p ein Polynom vom Gradl ∈N und die Behauptung folgt aus Lemma 1.2.8.

9

Page 18: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Sei die Behauptung nun richtig für k− 1 = k0 ∈ N0. Wir zeigen, dass siedann auch für k gilt. Nach Induktionsvoraussetzung gibt es ein Polynom ∼qvom Grad l − k ∈N0, das die Gleichung

p = ωi,k−1∼q

erfüllt. Die Behauptung folgt wie im ersten Fall, wenn wir zeigen können,dass xi+k eine Nullstelle von ∼q ist. Nach der Leibniz-Formel für Ableitungengilt

0 = p(λi+k−1)(xi+k)

= (ωi,k−1∼q)(λi+k−1)(xi+k)

=λi+k−1

∑r=0

(λi+k − 1

r

(r)i,k−1(xi+k)

∼q(λi+k−r−1)(xi+k)

= ω(λi+k−1)i,k−1 (xi+k)

∼q(xi+k),

denn nach Beispiel 1.2.7 stimmt das Knotenpolynom ωi,k−1 bezüglich derSequenz xi,k−1 mit der Nullfunktion überein. Es genügt daher zu zeigen,dass

ω(λi+k−1)i,k−1 (xi+k) 6= 0

ist. Dazu betrachten wir die Polynome

ϕ := (· − xi+k)λi+k−1

sowie

ψ :=ωi,k−1

ϕ

und wenden erneut die Leibniz-Formel an. Wir erhalten

ω(λi+k−1)i,k−1 (xi+k) = (ϕψ)(λi+k−1)(xi+k)

=λi+k−1

∑r=0

(λi+k − 1

r

)ϕ(r)(xi+k)ψ(λi+k−r−1)(xi+k)

= (λi+k − 1)! ψ(xi+k)6= 0,

denn für r ∈ [0, λi+k − 1]Z ist

ϕ(r)(xi+k) =(λi+k − 1)!

(λi+k − r− 1)!(xi+k − xi+k)λi+k−r−1.

10

Page 19: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.3 Dividierte Differenzen

Als Ergebnis dieses Abschnitts halten wir fest:

Satz 1.2.10. Das Hermite-Interpolationsproblem 1.2.4 ist eindeutig lösbar.

Beweis. Mit Bezeichnungen wie in Problem 1.2.4 müssen wir zeigen, dassdas lineare Gleichungssystem

p(l)(xj) = f (l)(xj)

für l ∈ [0, µj − 1]

Zund j ∈ [i, i + k]Z genau eine Lösung besitzt.

Nach Bemerkung 1.2.3 besteht dieses Gleichungssystem aus genau k + 1Gleichungen mit k + 1 Unbekannten. Aus der Linearen Algebra ist bekannt,dass ein lineares Gleichungssystem mit quadratischer Koeffizientenmatrixgenau dann eindeutig lösbar ist, wenn das zugehörige homogene Systemnur die Nulllösung besitzt.

Jedes nichttriviale Polynom, das bezüglich der Knotensequenz xi,k mit derNullfunktion übereinstimmt, hat nach Folgerung 1.2.9 einen Grad größeroder gleich k + 1, kommt als Lösung also nicht infrage. Da jedes homogenelineare Gleichungssystem die Nulllösung besitzt, folgt die Behauptung.

1.3 Dividierte Differenzen

Definition 1.3.1. Es seien x := xi,k mit i ∈ Z, k ∈ N0 eine Knotensequenzund f : R → R eine hinreichend oft differenzierbare Funktion. Als k-tedividierte Differenz von f bezüglich der Sequenz x bezeichnen wir den Ko-effizienten vor xk des (eindeutig bestimmten) Polynoms p ∈ Πk, welchesbezüglich x mit f übereinstimmt. Wir schreiben kurz

[xi,k] f .

Bemerkung 1.3.2. Es seien x := xi,k mit i ∈ Z und k ∈N0 eine Knotensequenzund f , g : R→ R hinreichend oft differenzierbare Funktionen. Dann gilt:

(a) [xi,k] f ist unabhängig von der Reihenfolge der Knoten in der Sequenz x.

(b) Für beliebige Zahlen α, β ∈ R haben wir

[xi,k] (α f + βg) = α [xi,k] f + β [xi,k] g.

(c) Es existieren nur von der Knotensequenz x abhängige Koeffizienten dj ∈R, j ∈ [i, i + k]Z, so dass

[xi,k] f =i+k

∑j=i

dj f (λj−1)(xj).

11

Page 20: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Beweisidee. Die Koeffizienten des (eindeutig bestimmten) Polynoms p ∈ Πk,das bezüglich der Sequenz x mit f übereinstimmt, ergeben sich als Lösungeines linearen Gleichungssystems, dessen Koeffizientenmatrix nur von x ab-hängt.

Aus Lemma 1.2.6 folgt

Lemma 1.3.3. Es seien x := xi,k+l mit i ∈ Z und k, l ∈ N0 eine Knotensequenzund f : R→ R eine hinreichend oft differenzierbare Funktion. Dann gilt

[xi,k] f = [xi,k+l ] (ωi+k+1,l−1 f ).

Beweis. Es sei p ∈ Πk das (eindeutig bestimmte) Polynom, welches bezüg-lich der Teilsequenz y := xi,k mit f übereinstimmt. Da nach Beispiel 1.2.7ωi+k+1,l−1 bezüglich der Teilsequenz z := xi+k+1,l−1 mit der Nullfunktionübereinstimmt, stimmen nach Lemma 1.2.6 die Funktionen ωi+k+1,l−1 f undωi+k+1,l−1 p bezüglich der vollen Sequenz x überein. Folglich ist ωi+k+1,l−1 pdas (eindeutig bestimmte) Polynom vom Höchstgrad k + l, welches bezüg-lich der Sequenz x mit ωi+k+1,l−1 f übereinstimmt. Da ωi+k+1,l−1 den Höchst-koeffizienten Eins besitzt, ergibt sich die Behauptung.

Ein schöner Beweis für die nächste Aussage findet sich bei Lee [28], S. 619.

Satz 1.3.4 (Rekursionsformel für dividierte Differenzen). Es seien xi,k miti ∈ Z, k ∈ N0 eine Knotensequenz und f : R → R eine hinreichend oft diffe-renzierbare Funktion. Dann gilt

(xi+k − xi) [xi,k] f = [xi+1,k−1] f − [xi,k−1] f .

Beweis. Unter Berücksichtigung von Bemerkung 1.3.2 (a) können wir ausLemma 1.3.3 die Gleichungen

[xi+1,k−1] f = [xi,k] ((· − xi) f )

sowie

[xi,k−1] f = [xi,k] ((· − xi+k) f )

schließen. Subtraktion liefert mit Bemerkung 1.3.2 (b)

[xi+1,k−1] f − [xi,k−1] f = [xi,k] ((· − xi) f − (· − xi+k) f )= [xi,k] ((xi+k − xi) f )= (xi+k − xi) [xi,k] f .

12

Page 21: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.3 Dividierte Differenzen

Bemerkung 1.3.5. Es seien f : R → R eine hinreichend oft differenzierbareFunktion und xi,k mit i ∈ Z und k ∈ N0 eine Knotensequenz, die so ge-ordnet ist, dass gleiche Knoten direkt aufeinander folgen. Aus Beispiel 1.2.5und Satz 1.3.4 ergibt sich dann der Zusammenhang

[xi,k] f =

{f (k)(xi)

k! , xi = xi+k[xi+1,k−1] f−[xi,k−1] f

xi+k−xi, xi 6= xi+k.

Mit Hilfe dieser Formel lassen sich dividierte Differenzen »bottom-up« ineinem Dreieckschema berechnen.

Anmerkung 1.3.6. In der Literatur wird die Rekursionsformel für dividierteDifferenzen häufig nur wie in Bemerkung 1.3.5 angegeben. Wir verwendendie Darstellung aus Satz 1.3.4, weil wir so in einigen Situationen auf Fallun-terscheidungen verzichten können.

Die Lösung des Hermite-Interpolationsproblems 1.2.4 lässt sich mit Hilfevon Knotenpolynomen und dividierten Differenzen ausdrücken.

Satz 1.3.7 (Newton-Darstellung). Es seien x := xi,k mit i ∈ Z, k ∈ N0 eineKnotensequenz und f : R → R eine hinreichend oft differenzierbare Funktion.Dann stimmt das Polynom pk ∈ Πk, definiert durch

pk :=k

∑r=0

[xi,r] f ωi,r−1,

bezüglich der Sequenz x mit f überein.

Beweis. Für k = 0 ist die Behauptung klar nach Definition 1.3.1.Sei die Behauptung nun richtig für k − 1 = k0 ∈ N0. Wir zeigen, dass

sie dann auch für k gilt. Dazu sei qk das (eindeutig bestimmte) Polynom,welches bezüglich der Sequenz xi,k mit f übereinstimmt. Das Polynom

rk := qk − pk−1 ∈ Πk

stimmt bezüglich xi,k−1 mit der Nullfunktion überein und hat vor xk denKoeffizienten [xi,k] f .

Ist [xi,k] f = 0, so ist qk = pk−1, und wir sind fertig. Andernfalls besitzt rkden Grad k und es gibt nach Folgerung 1.2.9 ein konstantes Polynom s mit

rk = ωi,k−1s.

Da ωi,k−1 den Höchstkoeffizienten Eins besitzt, ist s = [xi,k] f und die Be-hauptung ist bewiesen.

Nach Lee [28], S. 620 f. führen wir den Nachweis von

13

Page 22: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Satz 1.3.8 (Leibniz-Formel für dividierte Differenzen). Es seien x := xi,k miti ∈ Z und k ∈N0 eine Knotensequenz und f , g : R→ R hinreichend oft differen-zierbare Funktionen. Dann gilt

[xi,k] ( f g) =k

∑r=0

[xi,r] f [xi+r,k−r] g.

Beweis. Das (eindeutig bestimmte) Polynom p ∈ Πk, welches bezüglich derKnotensequenz x mit f übereinstimmt, besitzt nach Satz 1.3.7 die Newton-Darstellung

p =k

∑r=0

[xi,r] f ωi,r−1.

Da g bezüglich der leeren Knotensequenz mit der Nullfunktion überein-stimmt, stimmt pg nach Lemma 1.2.6 bezüglich der Sequenz x mit f g über-ein und es folgt mit Bemerkung 1.3.2 (a) und (b) sowie Lemma 1.3.3

[xi,k] ( f g) = [xi,k] (pg)

=k

∑r=0

[xi,r] f [xi,k] (ωi,r−1g)

=k

∑r=0

[xi,r] f [xi+r,k−r] g.

1.4 B-Splines und abgeschnittene Potenzen

Definition 1.4.1. Es seien k ∈N0 und t ∈ R. Die Abbildung

R 3 x 7→ (x− t)k+ ∈ R

mit

(x− t)k+ :=

{(x− t)k , x > t0 , x ≤ t

heißt (linksstetige) abgeschnittene Potenz vom Grad k mit dem Translat t.

Bemerkung 1.4.2. Die abgeschnittene Potenz vom Grad k ∈ N0 mit demTranslat t ∈ R ist beliebig oft linksseitig differenzierbar. Es gilt[

(· − t)k+

](l)

links=

k!(k− l)!

(· − t)k−l+

für l ∈ [0, k]Z.

14

Page 23: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.4 B-Splines und abgeschnittene Potenzen

1

0

t

(· − t)0+

1

0

t

(a) Grad 0.

1

0

t

(· − t)1+

(b) Grad 1.

1

0

t

(· − t)2+

(c) Grad 2.

Abbildung 1.1: Abgeschnittene Potenzen.

15

Page 24: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Für den Rest dieses Abschnitts sei x := x0,m+k mit m ∈N und k ∈N0 einemonoton wachsende Knotensequenz.

Definition 1.4.3. Für i ∈ [0, m− 1]Z heißt

Mi,k : R 3 t 7→ [xi,k+1] (· − t)k+ ∈ R

i-ter B-Spline vom Grad k ∈N0. Hierbei sind alle zur Definition der dividier-ten Differenzen herangezogenen Ableitungen als linksseitige zu verstehen.

Anmerkung 1.4.4. Die so definierten B-Splines sind rechtsstetig. Betrachtetman rechts- anstatt linksstetige abgeschnittene Potenzen und ihre rechtssei-tigen Ableitungen, so erhält man stattdessen linksstetige B-Splines.

In der Literatur kann man beide Varianten finden.

Aufgrund ihrer für die geometrische Datenverarbeitung günstigen Eigen-schaften verwendet man in der Praxis meist folgende skalierte Version derB-Splines aus Definition 1.4.3. Einige der nachfolgenden Beweise lassen sichjedoch etwas kürzer fassen, wenn man ohne Vorfaktor arbeitet.

Definition 1.4.5. Für i ∈ [0, m− 1]Z heißt

Ni,k := (xi+k+1 − xi)Mi,k

i-ter (normalisierter) B-Spline vom Grad k ∈N0.

Beispiel 1.4.6. Es sei i ∈ [0, m− 1]Z. Für den i-ten normalisierten B-Splinevom Grad k = 0 erhalten wir mit der Rekursionsformel für dividierte Diffe-renzen 1.3.4

Ni,0(t) = (xi+1 − xi)Mi,0(t)

= (xi+1 − xi) [xi,1] (· − t)0+

= [xi+1,0] (· − t)0+ − [xi,0] (· − t)0

+

= (xi+1 − t)0+ − (xi − t)0

+

=

{1 , t ∈ [xi, xi+1)0 , sonst.

Satz 1.4.7. Der i-te B-Spline Mi,k vom Grad k ∈ N0, i ∈ [0, m− 1]Z, ist aufjedem Intervall [xj, xj+1), j ∈ [i, i + k]Z, ein Polynom vom Höchstgrad k.

Beweis. Im Fall xi = xi+k+1 ist nichts zu zeigen.Sei also xi < xi+k+1. Für die den i-ten B-Spline definierende Teilsequenz

xi,k+1 schreiben wir y. Dann gilt λr,y ∈ [1, k + 1]Z für alle r ∈ [i, i + k + 1]Z.

16

Page 25: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.4 B-Splines und abgeschnittene Potenzen

1

0

xi+1xi

Ni,0

1

0

xi+1xi

(a) Grad 0.

1

0

xi+2xi+1xi

Ni,1

(b) Grad 1.

1

0

xi+3xi+2xi+1xi

Ni,2

(c) Grad 2.

Abbildung 1.2: Normalisierte B-Splines ohne zusammenfallende Knoten.

17

Page 26: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

1

0

xi+2xi = xi+1

Ni,1

1

0

xi+2xi = xi+1

1

0

xi+1 = xi+2xi

Ni,1

1

0

xi+1 = xi+2xi

(a) Grad 1.

1

0

xi+3xi+2xi = xi+1

Ni,2

1

0

xi+2 = xi+3xi+1xi

Ni,2

1

0

xi+3xi+1 = xi+2xi

Ni,2

1

0

xi+2 = xi+3xi = xi+1

Ni,2

1

0

xi+3xi = xi+1 = xi+2

Ni,2

1

0

xi+3xi = xi+1 = xi+2

1

0

xi+1 = xi+2 = xi+3xi

Ni,2

1

0

xi+1 = xi+2 = xi+3xi

(b) Grad 2.

Abbildung 1.3: Normalisierte B-Splines mit zusammenfallenden Knoten.

18

Page 27: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.4 B-Splines und abgeschnittene Potenzen

Nach Bemerkung 1.3.2 (c) existieren nur von der Sequenz y abhängige Ko-effizienten dr ∈ R, r ∈ [i, i + k + 1]Z, so dass

Mi,k(t) = [xi,k+1] (· − t)k+

=i+k+1

∑r=i

dr

[(· − t)k

+

](λr,y−1)

links(xr)

=i+k+1

∑r=i

drk!

(k− λr,y + 1)!(xr − t)k−λr,y+1

+

für alle t ∈ R. Für t ∈ [xj, xj+1) folgt

Mi,k(t) =i+k+1

∑r=j+1

drk!

(k− λr,y + 1)!(xr − t)k−λr,y+1

und damit die Behauptung.

Satz 1.4.8 (Lokaler Träger). Es sei i ∈ [0, m− 1]Z. Dann ist Mi,k(t) = 0 für allet ∈ R \ [xi, xi+k+1). Insbesondere ist Mi,k identisch Null, falls xi = xi+k+1.

Beweis. Ist t < xi, so ist (· − t)k ∈ Πk das (eindeutig bestimmte) Polynomvom Höchstgrad k + 1, welches bezüglich der Sequenz xi,k+1 mit (· − t)k

+übereinstimmt. Damit folgt

Mi,k(t) = [xi,k+1] (· − t)k+ = 0.

Ist t ≥ xi+k+1, so stimmt das Nullpolynom bezüglich der Sequenz xi,k+1 mit(· − t)k

+ überein. Also verschwindet Mi,k(t) auch in diesem Fall.

Folgerung 1.4.9. Es sei [xj, xj+1) mit j ∈ [0, m + k− 1]Z ein halboffenes Inter-vall. Dann sind höchstens die B-Splines Mi,k mit i ∈ [j− k, j]Z ∩ [0, m− 1]Z auf[xj, xj+1) von Null verschieden.

Beweis. Nach Satz 1.4.8 ist Mi,k höchstens auf [xi, xi+k+1) ungleich Null. Auf[xj, xj+1) sind damit höchstens Mi,k mit i + k + 1 > j und i < j + 1, alsoj− k ≤ i ≤ j von Null verschieden.

Satz 1.4.10 (Rekursionsformel für B-Splines). Es seien i ∈ [0, m− 1]Z undk ∈N. Dann gilt

(xi+k+1 − xi)Mi,k(t) = (t− xi)Mi,k−1(t) + (xi+k+1 − t)Mi+1,k−1(t)

für alle t ∈ R.

19

Page 28: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Beweis. Nach der Leibniz-Formel für dividierte Differenzen 1.3.8 haben wir

Mi,k(t) = [xi,k+1] (· − t)k+

=k+1

∑r=0

[xi,r] (· − t)︸ ︷︷ ︸=0, falls r ≥ 2

[xi+r,k−r+1] (· − t)k−1+

= (xi − t) [xi,k+1] (· − t)k−1+ + [xi+1,k] (· − t)k−1

+

= (xi − t) [xi,k+1] (· − t)k−1+ + Mi+1,k−1(t)

für alle t ∈ R. Dabei können wir nach der Rekursionsformel für dividierteDifferenzen 1.3.4

(xi+k+1 − xi) [xi,k+1] (· − t)k−1+ = [xi+1,k] (· − t)k−1

+ − [xi,k] (· − t)k−1+

= Mi+1,k−1(t)−Mi,k−1(t)

schließen. Somit ist

(xi+k+1 − xi)Mi,k(t)= (xi − t) (Mi+1,k−1(t)−Mi,k−1(t)) + (xi+k+1 − xi)Mi+1,k−1(t)= (t− xi)Mi,k−1(t) + (xi+k+1 − t)Mi+1,k−1(t).

Folgerung 1.4.11 (Rekursionsformel für normalisierte B-Splines). Für k ∈N

erfüllen die normalisierten B-Splines Ni,k, i ∈ [0, m− 1]Z, die Rekursionsglei-chung

Ni,k(t) = si,k(t)Ni,k−1(t) + (1− si+1,k(t))Ni+1,k−1(t),

wobei

si,k(t) :=

{t−xi

xi+k−xi, xi < xi+k

0 , sonst

für alle t ∈ R.

Beweis. Nach der Rekursionsformel 1.4.10 gilt

Ni,k(t) = (xi+k+1 − xi)Mi,k(t)= (t− xi)Mi,k−1(t) + (xi+k+1 − t)Mi+1,k−1(t)= (t− xi)Mi,k−1(t) + [(xi+k+1 − xi+1)− (t− xi+1)]Mi+1,k−1(t)= si,k(t)Ni,k−1(t) + (1− si+1,k(t))Ni+1,k−1(t)

für alle t ∈ R, denn nach Satz 1.4.8 verschwinden Mi,k−1, falls xi = xi+k undMi+1,k−1, falls xi+1 = xi+k+1.

20

Page 29: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.4 B-Splines und abgeschnittene Potenzen

1

0

xi+3yi+4

ξyi+3

xi+2yi+2

xi+1yi+1

xiyi

(xi+3 − xi)Mi,2,x

1

0

xi+3yi+4

ξyi+3

xi+2yi+2

xi+1yi+1

xiyi

(ξ − yi)Mi,2,y(yi+4 − ξ)Mi+1,2,y

Abbildung 1.4: Zerlegung eines quadratischen B-Splines durch Einfügen ei-nes Knotens ξ in die zugrunde liegende Sequenz x.

Anmerkung 1.4.12. In der Literatur wird die Rekursionsformel für norma-lisierte B-Splines häufig ohne explizite Fallunterscheidung angegeben undstattdessen die Konvention 0

0 = 0 verwendet. Wir benutzen die ausführli-chere Schreibweise aus Folgerung 1.4.11, um auch in unübersichtlichen Si-tuationen keine Fälle zu vernachlässigen.

Zum Anlass für unsere weiteren Untersuchungen nehmen wir die folgen-de Vorform des Knoteneinsetzalgorithmus von Böhm [7], S. 199.

Satz 1.4.13. Es seien ξ ∈ [xj, xj+1) für ein j ∈ [0, m + k− 1]Z und y := y0,m+k+1die monoton wachsende Sequenz, die durch Einfügen des Knotens ξ in die Sequenzx = x0,m+k entsteht. Dann gilt für alle i ∈ [j− k, j]Z ∩ [0, m− 1]Z

(xi+k+1 − xi)Mi,k,x = (ξ − yi)Mi,k,y + (yi+k+2 − ξ)Mi+1,k,y.

Beweis. Nach Voraussetzung sind

yr =

xr , r ∈ [0, j]Zξ , r = j + 1xr−1 , r ∈ [j + 2, m + k + 1]Z

und i ∈ [j− k, j]Z ∩ [0, m− 1]Z. Demgemäß sind yi = xi und yi+k+2 =xi+k+1. Mit Hilfe der Rekursionsformel für dividierte Differenzen 1.3.4 er-

21

Page 30: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

halten wir daher

(ξ − yi)Mi,k,y(t) + (yi+k+2 − ξ)Mi+1,k,y(t)

= (ξ − yi) [yi,k+1] (· − t)k+ + (yi+k+2 − ξ) [yi+1,k+1] (· − t)k

+

= (ξ − xi) [xi,k, ξ] (· − t)k+ + (xi+k+1 − ξ) [ξ, xi+1,k] (· − t)k

+

= [xi+1,k−1, ξ] (· − t)k+ − [xi,k] (· − t)k

+

+ [xi+1,k] (· − t)k+ − [ξ, xi+1,k−1] (· − t)k

+

= [xi+1,k] (· − t)k+ − [xi,k] (· − t)k

+

= (xi+k+1 − xi) [xi,k+1] (· − t)k+

= (xi+k+1 − xi)Mi,k,x(t)

für alle t ∈ R.

1.5 Spline-Kurven und das Knoteneinsetzproblem

Definition 1.5.1. Es sei x := x0,m+k mit m ∈ N und k ∈ N0 eine mo-noton wachsende Knotensequenz. Ferner seien d ∈ N und Pi ∈ Rd füri ∈ [0, m− 1]Z. Die Abbildung

F :=m−1

∑i=0

PiNi,k

heißt Spline-Kurve (in B-Spline-Darstellung) mit den Kontrollpunkten Pi. DenPolygonzug entlang der aufsteigend nach ihrem Index geordneten Kontroll-punkte bezeichnen wir als Kontrollpolygon.

Wir betrachten nun spezielle Knotensequenzen (vgl. Quak [41], S. 102 f.).

Definition 1.5.2. Eine monoton wachsende Knotensequenz x := x0,m+k mitm ∈N und k ∈N0 heißt k-regulär, falls sie den Bedingungen

xi < xi+k+1

für alle i ∈ [0, m− 1]Z sowie

x0 = . . . = xk ∧ xm = . . . = xm+k

genügt.

Definition 1.5.3. Es sei x := x0,m+k mit m ∈ N und k ∈ N0 eine k-reguläreKnotensequenz. Eine k-reguläre Sequenz y := y0,m+k+l mit l ∈ N0 nennenwir k-reguläre Verfeinerung von x, falls gilt:

22

Page 31: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1.5 Spline-Kurven und das Knoteneinsetzproblem

(a) Die Sequenz x = (xj)m+kj=0 ist eine Teilfolge von y = (yj)m+k+l

j=0 .

(b) Es sind x0 = y0 und xm+k = ym+k+l .

Im Weiteren befassen wir uns mit Verfahren zur Lösung von

Problem 1.5.4 (Knoteneinsetzen). Es seien x := x0,m+k mit m ∈ N, k ∈ N0eine k-reguläre Knotensequenz und y := y0,m+k+l mit l ∈N0 eine k-reguläreVerfeinerung von x. Gegeben sei eine Spline-Kurve

F :=m−1

∑i=0

Pi,xNi,k,x

mit Kontrollpunkten Pi,x ∈ Rd, i ∈ [0, m− 1]Z, d ∈N.Gesucht sind neue Kontrollpunkte Pi,y ∈ Rd, i ∈ [0, m + l − 1]Z, die die

Gleichung

F =m+l−1

∑i=0

Pi,yNi,k,y

erfüllen.

Bemerkung 1.5.5. Bereits aus Satz 1.4.13 folgt, dass das Knoteneinsetzpro-blem 1.5.4 stets eine Lösung besitzt.

Anmerkung 1.5.6. In Problem 1.5.4 nur reguläre Knotensequenzen zu be-trachten, stellt keine große Einschränkung dar.

Nach Satz 1.4.8 verschwindet ein B-Spline, falls alle zu dessen Definitionherangezogenen Knoten zusammenfallen. Demnach lässt sich jede monotonwachsende Knotensequenz regularisieren, indem man Knoten mit zu großerLinksvielfachheit entfernt und Randknoten bei Bedarf entsprechend verviel-fältigt.

Zur Motivation für die Suche nach effizienten Knoteneinsetzalgorithmensei auf [16, S. 102–109] verwiesen. Dort listen Cohen u. a. eine Reihe mögli-cher Einsatzgebiete dieser Verfahren auf. Hier wollen wir nur folgende auf-greifen:

Visualisierung Verfeinert man die einer Spline-Kurve F zugrunde gelegteKnotensequenz, so dass ihre Gitterweite gegen Null konvergiert, sostrebt die zugehörige Folge der Kontrollpolygone gegen F. Dadurcherhält man eine beliebig genaue stückweise lineare Approximation derAusgangskurve.

Erhöhen lokaler Flexibilität Durch Einfügen eines Knotens erhält man in ei-nem gewissen Bereich einen zusätzlichen Kontrollpunkt. Im Designlässt sich die zusätzliche Flexibilität nutzen, um ein Modell gezielt lo-kal zu verfeinern.

23

Page 32: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

1 Grundlagen

Übergang zu stückweiser Bernstein-Bézier-Darstellung Eine oft benötigteOperation in der geometrischen Datenverarbeitung ist es, eine in B-Spline-Darstellung gegebene Spline-Kurve F vom Grad k ∈ N0 alsstückweise Bernstein-Bézier-Kurve zu repräsentieren. Erhöht man dieVielfachheit eines jeden Knotens in der F zugrunde liegenden Sequenzauf k + 1, so stimmen die Kontrollpunkte der verfeinerten Darstellungder Kurve gerade mit den gesuchten Bézier-Punkten überein. Tatsäch-lich genügt es aus Stetigkeitsgründen sogar, die Ausgangssequenz nurbis zur Knotenvielfachheit k aufzufüllen.

24

Page 33: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

Im letzten Kapitel haben wir B-Splines als dividierte Differenzen abgeschnit-tener Potenzen eingeführt. Dieser klassische Ansatz geht zurück auf Schoen-berg [48, 49] sowie Curry und Schoenberg [18, 19]. In der Folge wurdenviele alternative Wege zur Theorie der B-Splines entdeckt. Weit verbreitethat sich beispielsweise das Vorgehen von de Boor und Höllig [12], von derRekursionsformel normalisierter B-Splines auszugehen und so eine Abhän-gigkeit von dividierten Differenzen zu vermeiden. Eher exotisch mutet esdagegen an, wie Lee [30] die Theorie aus der Marsden-Identität zu entwi-ckeln. Jede einzelne dieser Methoden leistet einen Beitrag zum Verständnisder B-Splines und hat allein dadurch ihre Berechtigung. Zu einer für dasVerständnis der von uns zu betrachtenden Knoteneinsetzalgorithmen be-sonders hilfreichen Sicht auf B-Splines führt die Technik, mit der wir unsin diesem Kapitel beschäftigen wollen. Ihr Name, Blossoming, geht zurückauf Ramshaw. Sein Forschungsbericht [42] aus dem Jahre 1987 hat entschei-denden Anteil an der Verbreitung der ihr zugrunde liegenden Ideen. Diewesentlichen Gedanken hatte de Casteljau jedoch schon zuvor formuliert.Notizen zu seiner Arbeit [15] gelangten bereits im Juni 1984 über de Boor zuRamshaw. In [44, Section 14–16, S. 40–43] (auch erschienen als [45]) schlüs-selt Ramshaw auf, was die beteiligten Akteure im Einzelnen geleistet haben.Geschichtliches kann man auch bei Böhm und Müller [10] nachlesen.

Die grundlegende Erkenntnis der Methode bildet das Blossoming-Prinzip.Es beschreibt eine Äquivalenzbeziehung zwischen Polynomen und symme-trischen, multiaffinen Funktionen, genannt Polarformen oder auch Blossoms.

Nach Böhm [9] haben Polarformen ihren Ursprung in der AlgebraischenGeometrie. Daher ist es kaum verwunderlich, dass der Blossoming-Ansatzauch im B-Spline-Kontext zu geometrisch verständlichen Ergebnissen führt.

Im ersten Abschnitt dieses Kapitels führen wir einige grundlegende Be-griffe ein und geben einen Beweis des Blossoming-Prinzips an. Dabei rich-ten wir uns nach Schaback [47].

Anschließend zeigen wir, wie sich der Algorithmus von de Casteljau in na-türlicher Weise aus den definierenden Eigenschaften von Polarformen er-gibt. Als Verallgemeinerung des klassischen Verfahrens von de Casteljau be-trachten wir den Blossoming-Algorithmus. Dieser erlaubt es, eine Polarforman beliebigen Stellen auszuwerten, sofern man ihre Werte bezüglich einerprogressiven Knotensequenz kennt. Zum Ende des zweiten Abschnitts bli-

25

Page 34: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

cken wir noch kurz auf das Konzept der progressiven Basis.Im dritten und letzten Teil dieses Kapitels wenden wir das Blossoming-

Prinzip auf die polynomialen Segmente normalisierter B-Splines an. Wirvervollständigen einen von Seidel skizzierten Beweis [51], dass die so erhal-tenen Polarformen eine Rekursionsgleichung analog zur Identität von Mans-field erfüllen. Daraus erhalten wir, dass sich die Kontrollpunkte einer Spline-Kurve (in B-Spline-Darstellung) ausdrücken lassen als eine Polarform, aus-gewertet an aufeinander folgenden Knoten. Dieser Zusammenhang bildetden Grundstein zum Verständnis von Knoteneinsetzalgorithmen, auf diewir im nachfolgenden Kapitel zu sprechen kommen.

2.1 Polarformen und das Blossoming-Prinzip

Definition 2.1.1. Eine Funktion f : (R)k → Rd mit k ∈ N0 und d ∈ N heißtsymmetrisch, falls sie unabhängig von der Reihenfolge ihrer Argumente ist.(Dabei fassen wir f im Fall k = 0 als Konstante mit Wert f () auf.)

Definition 2.1.2. Eine Funktion f : R→ Rd mit d ∈N heißt affin, falls

f

(l

∑r=1

crxr

)=

l

∑r=1

cr f (xr)

für alle cr, xr ∈ R, r ∈ [1, l]Z, l ∈N, mit ∑lr=1 cr = 1 gilt.

Eine Funktion f : (R)k → Rd mit k ∈ N0 und d ∈ N heißt k-affin odereinfach multiaffin, falls sie in jedem ihrer Argumente affin ist.

Definition 2.1.3. Eine symmetrische, k-affine Funktion f : (R)k → Rd mitk ∈N0 und d ∈N nennen wir Polarform vom Polargrad k oder auch Blossom.Die zugehörige Funktion F : R→ Rd, definiert durch

F(t) := f (t, . . . , t︸ ︷︷ ︸k

)

für alle t ∈ R, bezeichnen wir als Diagonale der Polarform f .

Beispiel 2.1.4 (Elementarsymmetrische Funktionen). Es sei k ∈ N0. Für j ∈[0, k]Z betrachten wir die Funktionen

σj : (R)k 3 (x1, . . . , xk) 7→ ∑I⊆[1,k]Z|I|=j

∏i∈I

xi ∈ R.

26

Page 35: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.1 Polarformen und das Blossoming-Prinzip

Es sei xk := ∑lr=1 crx(r)

k mit cr, x(r)k ∈ R, r ∈ [1, l]Z, l ∈ N und ∑l

r=1 cr = 1.Dann gilt

σj(x1, . . . , xk) = ∑I⊆[1,k−1]Z|I|=j

∏i∈I

xi + ∑I⊆[1,k−1]Z|I|=j−1

xk ∏i∈I

xi

=l

∑r=1

cr

∑I⊆[1,k−1]Z|I|=j

∏i∈I

xi + ∑I⊆[1,k−1]Z|I|=j−1

x(r)k ∏

i∈Ixi

=

l

∑r=1

crσj(x1, x2, . . . , x(r)k ).

Also ist σj affin im letzten Argument. Außerdem ist σj symmetrisch unddamit eine Polarform vom Polargrad k, deren Diagonale

σj(t, . . . , t) = ∑I⊆[1,k]Z|I|=j

∏i∈I

t = ∑I⊆[1,k]Z|I|=j

tj =(

kj

)tj

erfüllt.

Nach Schaback [47], Lemma 1.2, S. 3 lassen sich Polarformen wie folgtzerlegen.

Lemma 2.1.5. Es sei f : (R)k → Rd mit k, d ∈N eine Polarform. Dann existierenin eindeutiger Weise Polarformen g, h : (R)k−1 → Rd mit

f (x1, . . . , xk) = g(x1, . . . , xk−1)xk + h(x1, . . . , xk−1)

für alle xi ∈ R, i ∈ [1, k]Z.

Beweis. Wir führen den Beweis in zwei Schritten.

(a) Eindeutigkeit: Es seien g, h : (R)k−1 → Rd Polarformen mit

f (x1, . . . , xk) = g(x1, . . . , xk−1)xk + h(x1, . . . , xk−1)

für alle xi ∈ R. Daraus können wir für xk = 0 und beliebige xi ∈ R,i ∈ [1, k− 1]Z,

h(x1, . . . , xk−1) = f (x1, . . . , xk−1, 0)

schließen. Also ist h durch f eindeutig festgelegt. Für xk = 1 folgt

g(x1, . . . , xk−1) = f (x1, . . . , xk−1, 1)− h(x1, . . . , xk−1)= f (x1, . . . , xk−1, 1)− f (x1, . . . , xk−1, 0).

Daher haben wir auch für g nur eine mögliche Wahl.

27

Page 36: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

(b) Existenz: Offenbar sind g, h : (R)k−1 → Rd mit

g(x1, . . . , xk−1) := f (x1, . . . , xk−1, 1)− f (x1, . . . , xk−1, 0)

und

h(x1, . . . , xk−1) := f (x1, . . . , xk−1, 0)

symmetrisch und (k− 1)-affin. Ferner gilt

g(x1, . . . , xk−1)xk + h(x1, . . . , xk−1)= [ f (x1, . . . , xk−1, 1)− f (x1, . . . , xk−1, 0)] xk + f (x1, . . . , xk−1, 0)= f (x1, . . . , xk−1, 1)xk + f (x1, . . . , xk−1, 0)(1− xk)= f (x1, . . . , xk−1, 1 · xk + 0 · (1− xk))= f (x1, . . . , xk−1, xk).

Damit ist die Behauptung bewiesen.

Nach Schaback [47], Corollary 1.1, S. 3 formulieren wir mit alternativemBeweis:

Lemma 2.1.6. Die Diagonale F : R → Rd, d ∈ N, einer Polarform f : (R)k →Rd vom Polargrad k ∈N0 ist ein Polynom vom Höchstgrad k.

Beweis. Es sei zunächst k = 0. Dann ist F konstant gleich f (), also ein (vek-torwertiges) Polynom vom Höchstgrad Null.

Sei die Behauptung nun richtig für k − 1 = k0 ∈ N0. Wir zeigen, dasssie dann auch für k gilt. Nach Lemma 2.1.5 gibt es (eindeutig bestimmte)Polarformen g, h : (R)k−1 → Rd (vom Polargrad k− 1), die

f (x1, . . . , xk) = g(x1, . . . , xk−1)xk + h(x1, . . . , xk−1)

erfüllen. Übergang zur Diagonalen liefert

F(t) = f (t, . . . , t) = g(t, . . . , t)t + h(t, . . . , t)

für alle t ∈ R. Nach Induktionsvoraussetzung sind die Diagonalen von gund h Polynome vom Höchstgrad k− 1, woraus die Behauptung folgt.

Wir kommen nun zum Hauptsatz der Blossoming-Theorie. Zu seinem Be-weis folgen wir Schaback [47], Theorem 1.1, S. 3. Alternative Ansätze findensich bei Ramshaw [42], Proposition 2.1, S. 10 f., Seidel [51], Satz 2.2, S. 191oder Seidel [55], Theorem 2.6, S. 238 f..

28

Page 37: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.1 Polarformen und das Blossoming-Prinzip

Theorem 2.1.7 (Blossoming-Prinzip). Polynome vom Höchstgrad k ∈ N0 undPolarformen vom Polargrad k sind äquivalent, das heißt zu jedem Polynom F :R→ Rd, d ∈N, vom Höchstgrad k gibt es genau eine Polarform f : (R)k → Rd,die F(t) = f (t, . . . , t) für alle t ∈ R erfüllt, und umgekehrt.

Beweis. Dass die (eindeutig bestimmte) Diagonale F einer Polarform f vomPolargrad k ein Polynom vom Höchstgrad k ist, haben wir in Lemma 2.1.6gesehen. Die andere Richtung zeigen wir in zwei Schritten.

(a) Existenz: Als Polynom vom Höchstgrad k besitzt F für alle t ∈ R eineDarstellung der Form

F(t) =k

∑i=0

Piti

mit Pi ∈ Rd, i ∈ [0, k]Z. Nach Beispiel 2.1.4 ist sofort klar, dass

f :=k

∑i=0

Pi

(ki

)−1

σi

eine Polarform mit Diagonale F ist.

(b) Eindeutigkeit: Es sei f eine Polarform (vom Polargrad k) mit DiagonaleF. Für k = 0 ist f eindeutig bestimmt durch

f () = F(t) =0

∑i=0

Piti = P0.

Sei die Behauptung nun richtig für k − 1 = k0 ∈ N0. Wir zeigen, dasssie dann auch für k gilt. Nach Lemma 2.1.5 gibt es (eindeutig bestimmte)Polarformen g, h : (R)k−1 → Rd mit

f (x1, . . . , xk) = g(x1, . . . , xk−1)xk + h(x1, . . . , xk−1)

für alle xi ∈ R, i ∈ [1, k]Z. Speziell gilt demzufolge

F(t) = f (t, . . . , t) = g(t, . . . , t)t + h(t, . . . , t) = G(t)t + H(t),

wobei die Diagonalen G von g und H von h nach Lemma 2.1.6 Polynomevom Höchstgrad k− 1 sind. Weiter ist für i ∈ [1, k]Z

∂xif (x1, . . . , xk) =

∂xif (x1, . . . , xi−1, xi+1, . . . , xk, xi)

= g(x1, . . . , xi−1, xi+1, . . . , xk)

29

Page 38: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

und damit nach der Kettenregel (für Ableitungen) [25, S. 267 f.]

ddt

F(t) =k

∑i=1

∂xif (x1, . . . , xk)|(t,...,t)

=k

∑i=1

g(t, . . . , t)

= kG(t)

für alle t ∈ R. Also hängen G und somit auch H nur von F ab und sindunabhängig von der Wahl der Polarform f . Nach Induktionsvorausset-zung folgt dies deshalb auch für g und h. Mithin ist auch f eindeutigbestimmt.

Bemerkung 2.1.8. Den Übergang von einem Polynom zu seiner Polarformbezeichnen wir nach Ramshaw [42], S. 9 auch als blossoming.

2.2 Der Blossoming-Algorithmus

Die folgenden Gedanken finden sich bei Ramshaw [43], S. 762.Es seien f eine Polarform vom Polargrad k ∈ N0 und ti ∈ R, i ∈ [1, k]Z,

beliebig. Sind a, b ∈ R verschieden, so lassen sich die ti affin aus a und bkombinieren. Es gilt(

b− ti

b− a

)a +

(ti − ab− a

)b =

ab− ati + bti − abb− a

=b− ab− a

ti

= ti

für alle i ∈ [1, k]Z. Da f als Polarform affin in jedem Argument ist, könnenwir deshalb

f (t1, . . . , tk) =(

b− ti

b− a

)f (t1, . . . , ti−1, a, ti+1, . . . , tk)

+(

ti − ab− a

)f (t1, . . . , ti−1, b, ti+1, . . . , tk)

schreiben. Führen wir diesen Schritt für alle Argumente gleichzeitig aus, soerhalten wir unter Ausnutzung der Symmetrie

f (t1, . . . , tk) = ∑I∩J=∅

I∪J=[1,k]Z

∏i∈I

(b− ti

b− a

)∏j∈J

(tj − ab− a

)f (a, . . . , a︸ ︷︷ ︸

|I|, b, . . . , b︸ ︷︷ ︸

|J|).

30

Page 39: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.2 Der Blossoming-Algorithmus

Mithin ist f durch die Werte

f (a, . . . , a︸ ︷︷ ︸k−j

, b, . . . , b︸ ︷︷ ︸j

), (2.2.1)

j ∈ [0, k]Z, vollständig bestimmt. Insbesondere ist die Diagonale F mit

F(x) = f (x, . . . , x) =k

∑j=0

(kj

)(b− xb− a

)k−j ( x− ab− a

)j

f (a, . . . , a︸ ︷︷ ︸k−j

, b, . . . , b︸ ︷︷ ︸j

)

eine polynomiale Kurve in Bernstein-Bézier-Darstellung bezüglich einemParameterintervall mit den Endpunkten a und b. Ihre Kontrollpunkte sinddurch (2.2.1) gegeben.

Umgekehrt erhalten wir

Satz 2.2.1 (Algorithmus von de Casteljau). Es seien k ∈ N0 und a, b ∈ R mita 6= b. Gegeben seien für j ∈ [0, k]Z die Werte

f (a, . . . , a︸ ︷︷ ︸k−j

, b, . . . , b︸ ︷︷ ︸j

)

einer Polarform f vom Polargrad k. Setzen wir

P[0]j := f (a, . . . , a︸ ︷︷ ︸

k−j

, b, . . . , b︸ ︷︷ ︸j

)

für j ∈ [0, k]Z und berechnen

P[r]j :=

(b− tr

b− a

)P[r−1]

j +(

tr − ab− a

)P[r−1]

j+1

für r ∈ [1, k]Z und j ∈ [0, k− r]Z, so gilt

P[r]j = f (t1, . . . , tr, a, . . . , a︸ ︷︷ ︸

k−r−j

, b, . . . , b︸ ︷︷ ︸j

)

für r ∈ [0, k]Z und j ∈ [0, k− r]Z. Das heißt insbesondere

P[k]0 = f (t1, . . . , tk).

Beweis. Für r = 0 ist die Behauptung offensichtlich.

31

Page 40: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

f (a, a, a) f (a, a, b) f (a, b, b) f (b, b, b)

f (a, a, t1) f (a, t1, b) f (t1, b, b)

f (a, t1, t2) f (t1, t2, b)

f (t1, t2, t3)

Abbildung 2.1: Der Algorithmus von de Casteljau im kubischen Fall.

Sei die Behauptung nun richtig für r− 1 = r0 ∈ [0, k− 1]Z. Wegen

P[r]j =

(b− tr

b− a

)P[r−1]

j +(

tr − ab− a

)P[r−1]

j+1

=(

b− tr

b− a

)f (t1, . . . , tr−1, a, . . . , a︸ ︷︷ ︸

k−r−j+1

, b, . . . , b︸ ︷︷ ︸j

)

+(

tr − ab− a

)f (t1, . . . , tr−1, a, . . . , a︸ ︷︷ ︸

k−r−j

, b, . . . , b︸ ︷︷ ︸j+1

)

= f (t1, . . . , tr, a, . . . , a︸ ︷︷ ︸k−r−j

, b, . . . , b︸ ︷︷ ︸j

)

gilt sie dann auch für r.

Bemerkung 2.2.2. Die Bezeichnung des letzten Satzes ist gerechtfertigt, da erzum klassischen Algorithmus von de Casteljau führt, wenn man zur Diago-nale übergeht.

Beobachtung 2.2.3. Gehen wir in Satz 2.2.1 allgemeiner von Werten

f (xj, . . . , xj+k−1),

j ∈ [0, k]Z, einer Polarform f vom Polargrad k ∈ N aus, so können wir ineinem ersten Schritt für j ∈ [0, k− 1]Z die Rechnung(

xj+k − t1

xj+k − xj

)f (xj, . . . , xj+k−1)

+(

t1 − xj

xj+k − xj

)f (xj+1, . . . , xj+k) = f (t1, xj+1, . . . , xj+k−1)

ausführen, falls xj+k 6= xj für alle j ∈ [0, k− 1]Z.

32

Page 41: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.2 Der Blossoming-Algorithmus

Dies führt zu

Definition 2.2.4. Eine Knotensequenz x := xi,2k−1 mit i ∈ Z und k ∈ N0heißt progressiv, falls

xi+j+k 6= xi+j+l

für alle l ∈ [0, k− 1]Z und j ∈ [0, k− l − 1]Z gilt.

Als Verallgemeinerung des Algorithmus von de Casteljau erhalten wir

Satz 2.2.5 (Blossoming-Algorithmus). Es sei x := xi,2k−1 mit i ∈ Z und k ∈N0 eine progressive Knotensequenz. Außerdem seien für j ∈ [0, k]Z die Werte

f (xi+j, . . . , xi+j+k−1)

einer Polarform f vom Polargrad k bezüglich der Sequenz x vorgegeben. Setzen wir

P[0]j := f (xi+j, . . . , xi+j+k−1)

für j ∈ [0, k]Z und berechnen

P[r]j :=

(xi+j+k − tr

xi+j+k − xi+j+r−1

)P[r−1]

j +(

tr − xi+j+r−1

xi+j+k − xi+j+r−1

)P[r−1]

j+1 (2.2.2)

für r ∈ [1, k]Z und j ∈ [0, k− r]Z, so gilt

P[r]j = f (t1, . . . , tr, xi+j+r, . . . , xi+j+k−1) (2.2.3)

für r ∈ [0, k]Z und j ∈ [0, k− r]Z. Das heißt insbesondere

P[k]0 = f (t1, . . . , tk).

Beweis. Die Knotensequenz x = xi,2k−1 haben wir gerade so gewählt, dass(2.2.2) für r ∈ [1, k]Z und j ∈ [0, k− r]Z erklärt ist. Für r = 0 ist (2.2.3)offensichtlich. Sei die Behauptung nun richtig für r − 1 = r0 ∈ [0, k− 1]Z.Wegen

P[r]j =

(xi+j+k − tr

xi+j+k − xi+j+r−1

)P[r−1]

j +(

tr − xi+j+r−1

xi+j+k − xi+j+r−1

)P[r−1]

j+1

=(

xi+j+k − tr

xi+j+k − xi+j+r−1

)f (t1, . . . , tr−1, xi+j+r−1, . . . , xi+j+k−1)

+(

tr − xi+j+r−1

xi+j+k − xi+j+r−1

)f (t1, . . . , tr−1, xi+j+r, . . . , xi+j+k)

= f (t1, . . . , tr, xi+j+r, . . . , xi+j+k−1)

gilt sie dann auch für r.

33

Page 42: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

f (x0, x1, x2) f (x1, x2, x3) f (x2, x3, x4) f (x3, x4, x5)

f (x1, x2, t1) f (x2, t1, x3) f (t1, x3, x4)

f (x2, t1, t2) f (t1, t2, x3)

f (t1, t2, t3)

(a) Standard-Verfahren.

Abbildung 2.2: Der Blossoming-Algorithmus im kubischen Fall.

Beobachtung 2.2.6. Nach Satz 2.2.5 lässt sich eine Polarform f vom Polargradk ∈N0 durch ihre Werte

f (xi+j, . . . , xi+j+k−1),

j ∈ [0, k]Z, bezüglich einer progressiven Knotensequenz x := xi,2k−1 miti ∈ Z vollständig beschreiben. Notieren wir die nach r ∈ [0, k]Z Stufen desBlossoming-Algorithmus erhaltenen Werte

f (t1, . . . , tr, xi+j+r, . . . , xi+j+k−1),

j ∈ [0, k− r]Z, alsft1,...,tr(xi+j+r, . . . , xi+j+k−1),

so erkennen wir auf einen Blick, dass diese wiederum eine Polarform, dies-mal eine vom Polargrad k− r, definieren, denn mit der Sequenz x = xi,2k−1ist nach Definition 2.2.4 auch die Teilsequenz xi+r,2(k−r)−1 progressiv. Fürr ∈ [1, k]Z lässt sich die r-te Stufe im Blossoming-Algorithmus daher alspartielle Auswertung der Polarform ft1,...,tr−1 an der Stelle tr auffassen.

Bemerkung 2.2.7. In Satz 2.2.5 lassen wir bewusst einige Implementierungs-details offen. Dies ist dem Umstand geschuldet, dass verschiedene Realisie-rungen denkbar sind. Auf einige Variationsmöglichkeiten wollen wir hin-weisen:

(a) Aus Symmetriegründen können die Argumente t1, . . . , tk in beliebigerReihenfolge eingeführt werden.

(b) Obwohl sich nach Beobachtung 2.2.6 eine zeilenweise Abarbeitung desDreieckschemas anbietet, ist ebenso möglich diagonal vorzugehen.

34

Page 43: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.2 Der Blossoming-Algorithmus

f (x0, x1, x2) f (x1, x2, x3) f (x2, x3, x4) f (x3, x4, x5)

f (x1, x2, t1) f (x2, t1, x4) f (t1, x4, x5)

f (x1, t1, t2) f (t1, t2, x4)

f (t1, t2, t3)

(b) Modifiziertes Verfahren in der Situation t1 = x3 und t2 = x2.

Abbildung 2.2: Der Blossoming-Algorithmus im kubischen Fall.

(c) Nach Beobachtung 2.2.6 zerfällt der Blossoming-Algorithmus in natür-licher Weise in k Stufen, wobei die r-te Stufe für r ∈ [1, k]Z als partielleAuswertung der Polarform ft1,...,tr−1 an der Stelle tr aufgefasst werdenkann. Bezüglich welcher progressiven Knotensequenz wir die Werte vonft1,...,tr−1 kennen, spielt dabei keine Rolle. Wie Barry und Zhu in ähnli-chem Kontext [6] feststellen, kann man dies ausnutzen, um in gewissenFällen eine komplette Zeile im Rechenschema zu überspringen. Das aufdiese Weise erhaltene Verfahren wollen wir als modifizierten Blossoming-Algorithmus bezeichnen. Ein Beispiel für den kubischen Fall ist in Ab-bildung 2.2b dargestellt.

Ausblick 2.2.8. Wie wir zu Beginn dieses Abschnitts gesehen haben, korre-spondiert die für verschiedene a, b ∈ R progressive Knotensequenz

(a, . . . , a︸ ︷︷ ︸k

, b, . . . , b︸ ︷︷ ︸k

)

mit der Bernstein-Basis der Polynome vom Höchstgrad k ∈ N0 bezüglicheinem Intervall mit den Endpunkten a und b. Tatsächlich führt jede progres-sive Knotensequenz zu einer so genannten progressiven Basis (vgl. Goldmanund Barry [21]). Kennen wir für j ∈ [0, k]Z die Werte

f (xj, . . . , xj+k−1)

einer Polarform f vom Polargrad k ∈N0 bezüglich einer progressiven Kno-tensequenz x := x0,2k−1, so lassen sich mit dem Blossoming-Algorithmusinsbesondere auch die Werte

f (yj, . . . , yj+k−1),

j ∈ [0, k]Z, bezüglich einer beliebigen progressiven Sequenz y := y0,2k−1bestimmen.

35

Page 44: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

Der Rechenaufwand für solch einen Wechsel der progressiven Basis lässt sichreduzieren, wenn man Überlappungen in den k + 1 Dreieckschemata aus-nutzt. Zwei derartige Verfahren illustriert Abbildung 2.3. Beim Algorithmusvon Sablonnière hat das Rechenschema die Form eines Tetraeders. Mit demAlgorithmus von Goldman lässt sich ein Wechsel der progressiven Basis sogarauf zwei volle Durchläufe des Blossoming-Algorithmus reduzieren, falls diesich ergebende Zwischensequenz selbst auch progressiv ist.

Weiterführende Informationen zu diesem Themenkomplex finden sich beiBarry und Goldman [3], Goldman und Barry [21] sowie Mann [36].

2.3 B-Splines und Polarformen

In diesem Abschnitt sei x := x0,m+k mit m ∈ N und k ∈ N0 eine mono-ton wachsende Knotensequenz. Nach Satz 1.4.7 und Satz 1.4.8 ist der i-tenormalisierte B-Spline Ni,k, i ∈ [0, m− 1]Z, vom Grad k auf jedem Intervall[xj, xj+1), j ∈ [0, m + k− 1]Z, ein Polynom vom Höchstgrad k. Ist xj < xj+1,so bezeichnen wir mit Ni,j,k dasjenige Polynom vom Höchstgrad k, welchesauf [xj, xj+1) identisch mit Ni,k übereinstimmt. Nach Beispiel 1.4.6 war

Ni,0(t) =

{1 , t ∈ [xi, xi+1)0 , sonst,

das heißt

Ni,j,0 = δi,j :=

{1 , i = j0 , sonst.

Blossoming liefert die Polarform ni,j,0 mit

ni,j,0() = δi,j. (2.3.1)

Speziell gilt die Rekursionsformel für normalisierte B-Splines 1.4.11 auf je-dem Intervall [xj, xj+1), j ∈ [0, m + k− 1]Z. Folglich haben wir

Ni,j,k(t) = si,k(t)Ni,j,k−1(t) + (1− si+1,k(t))Ni+1,j,k−1(t) (2.3.2)

mit

si,k(t) =

{t−xi

xi+k−xi, xi < xi+k

0 , sonst

für alle t ∈ R.Ohne Beweis findet sich die folgende Aussage zum ersten Mal bei Rams-

haw [42], S. 106. Eine Beweisskizze liefert Seidel [51], Satz 3.1, S. 192 (vgl.Seidel [52, 53, 54]). Wie schon bei der Rekursionsformel für normalisierteB-Splines 1.4.11 wählen wir auch hier anstelle der Konvention 0

0 = 0 eineDarstellung mit expliziten Fallunterscheidungen.

36

Page 45: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.3 B-Splines und Polarformen

f (x0, x1, x2)

f (x1, x2, x3)

f (x2, x3, x4)

f (x3, x4, x5)

f (x1, x2, y0)

f (x2, y0, x3)

f (y0, x3, x4)

f (x2, y0, y1)

f (y0, y1, x3)

f (y0, y1, y2)

f (x1, x2, y3)

f (x2, y3, x3)

f (y3, x3, x4)

f (x2, y2, y3)

f (y2, y3, x3)

f (y1, y2, y3)

f (x2, y3, y4)

f (y3, y4, x3)

f (y2, y3, y4)

f (y3, y4, y5)

(a) Der Algorithmus von Sablonnière.

f (x0, x1, x2) f (x1, x2, x3) f (x2, x3, x4) f (x3, x4, x5)

f (x1, x2, y2) f (x2, y2, x3) f (y2, x3, x4)

f (x2, y1, y2) f (y1, y2, x3)

f (y0, y1, y2) f (y1, y2, y3)

f (y2, y3, x3)

f (y3, x3, x4)

f (y2, y3, y4)

f (y3, y4, x3)

f (y3, y4, y5)

(b) Der Algorithmus von Goldman.

Abbildung 2.3: Wechsel der progressiven Basis im kubischen Fall.

37

Page 46: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

Satz 2.3.1. Mit Bezeichnungen wie oben erfüllen die zu Ni,j,k gehörigen Polarfor-men ni,j,k für i ∈ [0, m− 1]Z, j ∈ [0, m + k− 1]Z mit xj < xj+1 und k ∈ N dieRekursionsgleichung

ni,j,k(t1, . . . , tk) = si,k(tk)ni,j,k−1(t1, . . . , tk−1)

+ (1− si+1,k(tk))ni+1,j,k−1(t1, . . . , tk−1)(2.3.3)

für beliebige t1, . . . , tk ∈ R.

Beweis. Da die Diagonalen Ni,j,k von ni,j,k die Rekursionsformel (2.3.2) erfül-len, genügt es nach dem Blossoming-Prinzip 2.1.7 zu zeigen, dass auf derrechten Seite der Gleichung (2.3.3) eine Polarform vom Polargrad k steht.

Offensichtlich ist die rechte Seite affin in t1, . . . , tk−1. Ist tk = ∑lr=1 crt(r)

kmit cr ∈ R, r ∈ [1, l]Z, l ∈N und ∑l

r=1 cr = 1, so gilt

si,k

(l

∑r=1

crt(r)k

)=

(

∑lr=1 crt(r)

k

)−xi

xi+k−xi, xi < xi+k

0 , sonst

=l

∑r=1

cr

t(r)k −xi

xi+k−xi, xi < xi+k

0 , sonst

=l

∑r=1

crsi,k

(t(r)k

)und

si,k

(l

∑r=1

crt(r)k

)ni,j,k−1 +

(1− si+1,k

(l

∑r=1

crt(r)k

))ni+1,j,k−1

=l

∑r=1

crsi,k

(t(r)k

)ni,j,k−1 +

(1−

l

∑r=1

crsi+1,k

(t(r)k

))ni+1,j,k−1

=l

∑r=1

cr

[si,k(t(r)

k )ni,j,k−1 + (1− si+1,k(t(r)k ))ni+1,j,k−1

]beweist, dass sie auch affin in tk ist. Ihre Symmetrie in t1, . . . , tk zeigen wirdurch vollständige Induktion nach k. Es sei zunächst k = 1. Dann ist

si,1(t1)ni,j,0() + (1− si+1,1(t1))ni+1,j,0()

symmetrisch als univariate Funktion in t1.Sei die Behauptung nun richtig für k− 1 = k0 ∈ N. Wir zeigen, dass sie

dann auch für k gilt. Offenbar ist die rechte Seite symmetrisch in t1, . . . , tk−1.

38

Page 47: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.3 B-Splines und Polarformen

Um ihre Symmetrie in t1, . . . , tk zu zeigen, genügt es daher zu beweisen, dasstk−1 und tk vertauscht werden können. Nach Induktionsvoraussetzung dür-fen wir die Rekursionsformel (2.3.3) auf ihre eigene rechte Seite anwenden.Wir erhalten

si,k(tk)ni,j,k−1(t1, . . . , tk−1) + (1− si+1,k(tk))ni+1,j,k−1(t1, . . . , tk−1)

= si,k(tk)[si,k−1(tk−1)ni,j,k−2(t1, . . . , tk−2)

+(1− si+1,k−1(tk−1))ni+1,j,k−2(t1, . . . , tk−2)]

+ (1− si+1,k(tk))[si+1,k−1(tk−1)ni+1,j,k−2(t1, . . . , tk−2)

+(1− si+2,k−1(tk−1))ni+2,j,k−2(t1, . . . , tk−2)]

= si,k(tk)si,k−1(tk−1)ni,j,k−2(t1, . . . , tk−2)

+ [si,k(tk)(1− si+1,k−1(tk−1))+(1− si+1,k(tk))si+1,k−1(tk−1)] ni+1,j,k−2(t1, . . . , tk−2)

+ (1− si+1,k(tk))(1− si+2,k−1(tk−1))ni+2,j,k−2(t1, . . . , tk−2).

Dabei gilt unter Beachtung von Satz 1.4.8:

(a) Im Fall xi = xi+k−1 verschwindet der erste Summand (ist also sym-metrisch in tk−1, tk). Haben wir xi < xi+k−1, das heißt insbesonderexi < xi+k, so ist der erste Summand wegen

si,k(tk)si,k−1(tk−1) =tk − xi

xi+k − xi· tk−1 − xi

xi+k−1 − xi

=tk−1 − xi

xi+k − xi· tk − xi

xi+k−1 − xi

= si,k(tk−1)si,k−1(tk)

ebenfalls unabhängig von der Reihenfolge von tk−1 und tk.

(b) Im Fall xi+1 = xi+k verschwindet der zweite Summand (ist also sym-metrisch in tk−1, tk). Haben wir xi+1 < xi+k, das heißt insbesonderexi < xi+k und xi+1 < xi+k+1, so gilt

si,k(tk)(1− si+1,k−1(tk−1)) + (1− si+1,k(tk))si+1,k−1(tk−1)

=tk − xi

xi+k − xi· xi+k − tk−1

xi+k − xi+1+

xi+k+1 − tk

xi+k+1 − xi+1· tk−1 − xi+1

xi+k − xi+1.

39

Page 48: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

Multiplikation mit (xi+k − xi), (xi+k − xi+1) sowie (xi+k+1− xi+1) liefert

(tk−1 − xi+k)(tk − xi)(xi+1 − xi+k+1)+ (tk−1 − xi+1)(tk − xi+k+1)(xi − xi+k)

= [(xi+1 − xi+k+1) + (xi − xi+k)] tk−1tk

+ [(xi+k+1 − xi+1)xi + (xi+k − xi)xi+k+1] tk−1

+ [(xi+k+1 − xi+1)xi+k + (xi+k − xi)xi+1] tk

+ (xi+1 − xi+k+1)xixi+k + (xi − xi+k)xi+1xi+k+1

= (xi + xi+1 − xi+k − xi+k+1) tk−1tk

+ (xi+kxi+k+1 − xixi+1) (tk−1 + tk)+ (xi+1 − xi+k+1)xixi+k + (xi − xi+k)xi+1xi+k+1

und damit die Symmetrie des zweiten Summanden in tk−1, tk.

(c) Im Fall xi+2 = xi+k+1 verschwindet der letzte Summand (ist also sym-metrisch in tk−1, tk). Haben wir xi+2 < xi+k+1, das heißt insbesonderexi+1 < xi+k+1, so ist der letzte Summand wegen

(1− si+1,k(tk))(1− si+2,k−1(tk−1)) =xi+k+1 − tk

xi+k+1 − xi+1· xi+k+1 − tk−1

xi+k+1 − xi+2

=xi+k+1 − tk−1

xi+k+1 − xi+1· xi+k+1 − tk

xi+k+1 − xi+2

= (1− si+1,k(tk−1))(1− si+2,k−1(tk))

ebenfalls unabhängig von der Reihenfolge von tk−1 und tk.

Da alle ihre Summanden symmetrisch in tk−1, tk sind, gilt dies für die ge-samte rechte Seite der Rekursionsgleichung (2.3.3) und wir sind fertig.

Nach Seidel [51], Korollar 3.2, S. 193 formulieren wir mit ausgeführterBeweisidee:

Folgerung 2.3.2. Es seien i ∈ [0, m− 1]Z, j ∈ [0, m + k− 1]Z und k ∈ N0.Ist xj < xj+1 und l ∈ [j− k, j]Z ∩ [0, m− 1]Z, so erfüllt die zu Ni,j,k gehörigePolarform ni,j,k die Gleichung

ni,j,k(xl+1, . . . , xl+k) = δi,l .

Beweis. Wir zeigen, dass

ni,j,r(xl+1, . . . , xl+r) = δi,l

für i ∈ [0, m + k− r− 1]Z, l ∈ [j− r, j]Z ∩ [0, m− 1]Z und r ∈ [0, k]Z. Fürr = 0 finden wir die Aussage in (2.3.1). Sei die Behauptung nun richtigfür r − 1 = r0 ∈ [0, k− 1]Z. Wir zeigen, dass sie dann auch für r gilt. Wirbetrachten zwei Fälle:

40

Page 49: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.3 B-Splines und Polarformen

(a) l > j− r: Dann ist l ∈ [j− r + 1, j]Z ∩ [0, m− 1]Z. Nach der Rekursions-formel 2.3.1 und der Induktionsvoraussetzung erhalten wir

ni,j,r(xl+1, . . . , xl+r) = si,r(xl+r)ni,j,r−1(xl+1, . . . , xl+r−1)

+ (1− si+1,r(xl+r))ni+1,j,r−1(xl+1, . . . , xl+r−1)

= si,r(xl+r)δi,l

+ (1− si+1,r(xl+r))δi+1,l

=

{xl+r−xixi+r−xi

, xi < xi+r

0 , sonst

}δi,l

+

{xi+r+1−xl+rxi+r+1−xi+1

, xi+1 < xi+r+1

1 , sonst

}δi+1,l

=

{1 , xl < xl+r

0 , sonst

}δi,l

+

{0 , xl < xl+r

1 , sonst

}δi+1,l

= δi,l ,

denn xl ≤ xj < xj+1 ≤ xl+r.

(b) l = j− r: Dann ist l + 1 ∈ {j− r + 1} ∩ [1, m]Z. Wie im ersten Fall kön-nen wir daher zuerst die Rekursionsformel und anschließend die Induk-tionsvoraussetzung anwenden. Es gilt

ni,j,r(xl+1, . . . , xl+r) = si,r(xl+1)ni,j,r−1(xl+2, . . . , xl+r)

+ (1− si+1,r(xl+1))ni+1,j,r−1(xl+2, . . . , xl+r)

= si,r(xl+1)δi,l+1

+ (1− si+1,r(xl+1))δi+1,l+1

=

{xl+1−xixi+r−xi

, xi < xi+r

0 , sonst

}δi,l+1

+

{xi+r+1−xl+1xi+r+1−xi+1

, xi+1 < xi+r+1

1 , sonst

}δi+1,l+1

= 0 · δi,l+1 + 1 · δi+1,l+1

= δi,l .

Damit ist die Behauptung bewiesen.

41

Page 50: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2 Blossoming

Sei nun

F :=m−1

∑i=0

PiNi,k

eine Spline-Kurve (in B-Spline-Darstellung) mit Kontrollpunkten Pi ∈ Rd,i ∈ [0, m− 1]Z, d ∈N. Ist xj < xj+1, j ∈ [0, m + k− 1]Z, so stimmt F auf demIntervall [xj, xj+1) (in eindeutiger Weise) identisch mit einem (vektorwerti-gen) Polynom Fj vom Höchstgrad k überein. Die zu Fj gehörige Polarformvom Polargrad k bezeichnen wir mit f j.

Die folgende Aussage ist fundamental für unsere weitere Arbeit. Nachunseren bisherigen Überlegungen ist ihr Beweis zwangsläufig (vgl. Seidel[51], Satz 3.3, S. 193).

Satz 2.3.3. Es sei j ∈ [0, m + k− 1]Z. Ist xj < xj+1, so gilt für l ∈ [j− k, j]Z ∩[0, m− 1]Z der Zusammenhang

Pl = f j(xl+1, . . . , xl+k).

Beweis. Für j ∈ [0, m + k + 1]Z ist

Fj =m−1

∑i=0

PiNi,j,k

und nach dem Blossoming-Prinzip 2.1.7 können wir schließen, dass die zuFj gehörige Polarform f j (vom Polargrad k)

f j =m−1

∑i=0

Pini,j,k

erfüllt. Nach Folgerung 2.3.2 gilt somit

f j(xl+1, . . . , xl+k) =m−1

∑i=0

Pi ni,j,k(xl+1, . . . , xl+k)︸ ︷︷ ︸=δi,l

= Pl .

Aus der Perspektive eines Kontrollpunktes erhalten wir sofort

Folgerung 2.3.4. Ist l ∈ [0, m− 1]Z, so gilt für j ∈ [l, l + k]Z mit xj < xj+1 dieGleichung

Pl = f j(xl+1, . . . , xl+k).

Bemerkung 2.3.5. Es lassen sich alle die Gestalt einer Spline-Kurve beeinflus-senden Kontrollpunkte wie in Folgerung 2.3.4 darstellen.

Ist nämlich xl < xl+k+1 für ein l ∈ [0, m− 1]Z, so gibt es ein j ∈ [l, l + k]Zmit xj < xj+1. Haben wir dagegen xl = xl+k+1, so verschwindet der zuge-hörige B-Spline Nl,k nach Satz 1.4.8.

42

Page 51: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

2.3 B-Splines und Polarformen

Nun haben wir eine Reihe von Hilfsmitteln zur Hand, die es uns ermög-lichen, in einfacher Weise Lösungsverfahren für das Knoteneinsetzproblem1.5.4 zu entwickeln.

43

Page 52: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber
Page 53: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

Die ersten Verfahren zum Lösen des Knoteneinsetzproblems wurden im Jah-re 1980 veröffentlicht.

Mit dem Algorithmus von Böhm [7] kann man in jedem Schritt genau einen(Mehrfach-)Knoten einfügen. Allein die davon beeinflussten Kontrollpunk-te werden neu berechnet. Sein ursprünglicher Beweis über dividierte Diffe-renzen umfasst lediglich wenige Zeilen (vgl. auch Satz 1.4.13). AlternativeHerleitungen finden sich bei Barry und Goldman [2], de Boor und Höllig[12], Lee [29] sowie Seidel [50, 51].

Benannt nach dem Ort ihrer Entdeckung sind die von Cohen, Lyche undRiesenfeld [16] beschriebenen Oslo-Algorithmen 1 und 2. Im Gegensatz zuBöhms Methode erlauben sie das simultane Einfügen mehrerer Knoten. Ausdiesem Grunde wird ihnen häufig eine gewisse Überlegenheit zugeschrie-ben. Mit Algorithmus 1 lässt sich ermitteln, welchen Beitrag die alten Kon-trollpunkte zu einem neuen liefern. Aufgrund ihrer Eigenschaften nenntman diese Beiträge auch diskrete B-Splines. Mit dem zweiten Verfahren er-hält man wie bei Böhms Methode direkt die verfeinerten Kontrollpunkte.

Wir wollen uns vornehmlich mit dem punktorientierten Algorithmus 2 be-fassen. Diesen meinen wir auch, wenn wir zukünftig von dem Oslo-Algo-rithmus sprechen.

Als Grundlage für ihre Verfahren leiten Cohen u. a. mit großem Aufwandeine Rekursionsformel für diskrete B-Splines her. Eine geometrische Inter-pretation der einzelnen Rechenschritte im Oslo-Algorithmus erschließt sichdabei schwerlich. Kaum etwas daran ändern auch die Arbeiten von Lee[27, 30], Lyche [34], Lyche und Mørken [35] oder Prautzsch [39, 40], wenn-gleich sie den Beweis der Rekursionsformel für diskrete B-Splines zum Teilstark vereinfachen. Eine eingängige, zusammenhängende und lückenloseHerleitung des Verfahrens ist nicht bekannt.

Eine solche wollen wir in diesem Kapitel liefern. Möglich machen uns diesdie bisher erarbeiteten Hilfsmittel.

Im ersten Abschnitt sehen wir uns an, wie sich der Algorithmus von Böhmaus Blossoming-Sicht darstellt. Dabei betrachten wir sowohl das Einfügenvon Einfach- als auch Mehrfachknoten.

Anschließend wenden wir uns dem Oslo-Algorithmus zu. Wir beweisendie Korrektheit des klassischen Verfahrens und betrachten eine Modifikati-on, die es uns erlaubt, mit nur einer zusätzlichen Affinkombination neben

45

Page 54: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

einem neuen Kontrollpunkt gleich einen zweiten zu bestimmen.Im dritten Teil dieses Kapitels halten wir kurz einige Gedanken zu matri-

xorientierten Verfahren fest.Zum Abschluss vergleichen wir die betrachteten punktorientierten Kno-

teneinsetzalgorithmen experimentell in Bezug auf arithmetische Komplexi-tät, Laufzeit und Fehlerverhalten.

3.1 Der Algorithmus von Böhm

Gemäß unseres Knoteneinsetzproblems 1.5.4 seien in diesem Abschnitt x :=x0,m+k mit m ∈N und k ∈N0 eine k-reguläre Knotensequenz, y := y0,m+k+lmit l ∈N0 eine k-reguläre Verfeinerung von x und

F := Fx :=m−1

∑i=0

Pi,xNi,k,x

eine Spline-Kurve (in B-Spline-Darstellung) mit den Kontrollpunkten Pi,x ∈Rd, i ∈ [0, m− 1]Z, d ∈ N. Wir suchen neue Kontrollpunkte Pi,y ∈ Rd,i ∈ [0, m + l − 1]Z, so dass

F = Fx = Fy :=m+l−1

∑i=0

Pi,yNi,k,y (3.1.1)

gilt. Die Existenz solcher Pi,y ist nach Bemerkung 1.5.5 gesichert.Wir beginnen mit der einfachen Variante von Böhms Algorithmus.

Satz 3.1.1 (Einfügen eines Einfachknotens nach Böhm). Ist y = y0,m+k+1 diek-reguläre Verfeinerung von x = x0,m+k, die durch Einfügen eines Knotens ξ ∈[xj, xj+1), j ∈ [k, m− 1]Z, in die Sequenz x aus dieser hervorgeht, so erfüllen diedurch

Pi,y :=

Pi,x , i ∈ [0, j− k]Zf j,x(xi+1, . . . , xj, ξ, xj+1, . . . , xi+k−1) , i ∈ [j− k + 1, j]ZPi−1,x , i ∈ [j + 1, m]Z

definierten Kontrollpunkte (3.1.1).

Beweis. Nach Voraussetzung befinden wir uns in der Situation

xj ≤ yj+1︸︷︷︸=ξ

< xj+1.

46

Page 55: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.1 Der Algorithmus von Böhm

Für r ∈ [0, m + k]Z mit yr < yr+1 haben wir

Fr,y =

Fr,x , r ∈ [0, j]ZFj,x , r ∈ [j, j + 1]ZFr−1,x , r ∈ [j + 1, m + k]Z

und daher für die zugehörigen Polarformen

fr,y =

fr,x , r ∈ [0, j]Zf j,x , r ∈ [j, j + 1]Zfr−1,x , r ∈ [j + 1, m + k]Z.

Nach Folgerung 2.3.4 gilt für i ∈ [0, m]Z und r ∈ [i, i + k]Z mit yr < yr+1 derZusammenhang

Pi,y = fr,y(yi+1, . . . , yi+k).

Nach Bemerkung 2.3.5 existiert ein solcher Index r stets. Ist i ∈ [0, j− k]Z, sokönnen wir wegen r ∈ [0, j]Z

Pi,y = fr,y(yi+1, . . . , yi+k) = fr,x(xi+1, . . . , xi+k) = Pi,x

schließen. Entsprechend erhalten wir

Pi,y = fr,y(yi+1, . . . , yi+k) = fr−1,x(xi, . . . , xi+k−1) = Pi−1,x

für i ∈ [j + 1, m]Z, denn in diesem Fall ist r ∈ [j + 1, m + k]Z. Wegen yj+1 <yj+2 folgt nach Satz 2.3.3 schließlich

Pi,y = f j+1,y(yi+1, . . . , yi+k) = f j,x(yi+1, . . . , yi+k)

für i ∈ [j− k + 1, j]Z ⊆ [j− k + 1, j + 1]Z.

Bemerkung 3.1.2. In Satz 3.1.1 ist die Teilsequenz z := xj−k+1,2k−1 für k ∈ N

monoton wachsend mit xj < xj+1, also insbesondere progressiv. Ferner sindnach Satz 2.3.3 die Werte der Polarform f j bezüglich der Sequenz z gegebendurch

f j,x(xl+1, . . . , xl+k) = Pl,x

für l ∈ [j− k, j]Z. Partielle Auswertung – also die Berechnung einer Stufeim Blossoming-Algorithmus 2.2.5 – an der Stelle ξ liefert daher die neuenKontrollpunkte

Pi,y = f j,x(xi+1, . . . , xj, ξ, xj+1, . . . , xi+k−1)

für i ∈ [j− k + 1, j]Z. Für das einfache Einfügen eines Knotens nach Böhmmüssen wir daher k (konvexe) Affinkombinationen ausführen. Das zugehö-rige Rechenschema für den kubischen Fall illustriert Abbildung 3.1a.

47

Page 56: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

f j,x(xj−2, xj−1, xj) f j,x(xj−1, xj, xj+1) f j,x(xj, xj+1, xj+2) f j,x(xj+1, xj+2, xj+3)

f j,x(xj−1, xj, ξ) f j,x(xj, ξ, xj+1) f j,x(ξ, xj+1, xj+2)

(a) Einfaches Einfügen eines Knotens ξ.

Abbildung 3.1: Der Algorithmus von Böhm im kubischen Fall.

Böhm gibt in [7] auch ein Verfahren an, um einen Knoten mehrfach einzu-fügen.

Folgerung 3.1.3 (Einfügen eines Mehrfachknotens nach Böhm). Es sei l ∈[0, k]Z. Ist y = y0,m+k+l die k-reguläre Verfeinerung von x = x0,m+k, die durchl-faches Einfügen eines Knotens ξ ∈ [xj, xj+1), j ∈ [k, m− 1]Z, in die Sequenz xaus dieser hervorgeht, so erfüllen die durch

Pi,y :=

Pi,x , i ∈ [0, j− k]Zf j,x(yi+1, . . . , yi+k) , i ∈ [j− k + 1, j + l − 1]ZPi−l,x , i ∈ [j + l, m + l − 1]Z

definierten Kontrollpunkte (3.1.1).

Beweis. Für l = 0 ist die Behauptung klar nach Satz 2.3.3. Sei die Behauptungnun richtig für l − 1 = l0 ∈ [0, k− 1]Z. Wir zeigen, dass sie dann auch für lgilt.

Dazu sei z := z0,m+k+l−1 diejenige k-reguläre Verfeinerung von x, diedurch (l − 1)-faches Einfügen des Knotens ξ in die Sequenz x aus dieserhervorgeht. Wir befinden uns dann in der Situation

xj ≤ zj+1 = · · · = zj+l−1 = yj+l︸ ︷︷ ︸=ξ

< xj+1

und haben nach Induktionsvoraussetzung

Pi,z =

Pi,x , i ∈ [0, j− k]Zf j,x(zi+1, . . . , zi+k) , i ∈ [j− k + 1, j + l − 2]ZPi−l+1,x , i ∈ [j + l − 1, m + l − 2]Z.

48

Page 57: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.1 Der Algorithmus von Böhm

f j,x(xj−2, xj−1, xj) f j,x(xj−1, xj, xj+1) f j,x(xj, xj+1, xj+2) f j,x(xj+1, xj+2, xj+3)

f j,x(xj−1, xj, ξ) f j,x(xj, ξ, xj+1) f j,x(ξ, xj+1, xj+2)

f j,x(xj, ξ, ξ) f j,x(ξ, ξ, xj+1)

(b) Zweifaches Einfügen eines Knotens ξ.

Abbildung 3.1: Der Algorithmus von Böhm im kubischen Fall.

Aus Satz 3.1.1 können wir schließlich

Pi,y =

Pi,z , i ∈ [0, j− k + l − 1]Zf j+l−1,z(yi+1, . . . , yi+k) , i ∈ [j− k + l, j + l − 1]ZPi−1,z , i ∈ [j + l, m + l − 1]Z

=

Pi,x , i ∈ [0, j− k]Zf j,x(zi+1, . . . , zi+k) , i ∈ [j− k + 1, j− k + l − 1]Zf j,x(yi+1, . . . , yi+k) , i ∈ [j− k + l, j + l − 1]ZPi−l,x , i ∈ [j + l, m + l − 1]Z

=

Pi,x , i ∈ [0, j− k]Zf j,x(yi+1, . . . , yi+k) , i ∈ [j− k + 1, j + l − 1]ZPi−l,x , i ∈ [j + l, m + l − 1]Z

folgern.

Bemerkung 3.1.4. Um in Folgerung 3.1.3 die neuen Kontrollpunkte

Pi,y = f j,x(yi+1, . . . , yi+k)

für i ∈ [j− k + 1, j + l − 1]Z zu bestimmen, genügt es die ersten l Stufen desBlossoming-Algorithmus auszuführen. Dies bedeutet einen Aufwand von

l

∑r=1

(k− r + 1) = lk− (l − 1)l2

(konvexen) Affinkombinationen. Insbesondere führt k-faches Einfügen ei-nes Knotens auf den Algorithmus von Cox und de Boor zum Auswerteneiner Spline-Kurve (in B-Spline-Darstellung). Das Einfügen eines Mehrfach-knotens nach Böhm im kubischen Fall ist in den Abbildungen 3.1b und 3.1cdargestellt.

49

Page 58: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

f j,x(xj−2, xj−1, xj) f j,x(xj−1, xj, xj+1) f j,x(xj, xj+1, xj+2) f j,x(xj+1, xj+2, xj+3)

f j,x(xj−1, xj, ξ) f j,x(xj, ξ, xj+1) f j,x(ξ, xj+1, xj+2)

f j,x(xj, ξ, ξ) f j,x(ξ, ξ, xj+1)

f j,x(ξ, ξ, ξ)

(c) Dreifaches Einfügen eines Knotens ξ.

Abbildung 3.1: Der Algorithmus von Böhm im kubischen Fall.

Anmerkung 3.1.5. Das allgemeine Knoteneinsetzproblem 1.5.4 lässt sich mitHilfe des Algorithmus von Böhm lösen, indem man alle neuen Knoten nach-einander einfügt. Ohne Berücksichtigung von Mehrfachknoten werden da-für insgesamt lk (konvexe) Affinkombinationen benötigt.

Es lassen sich einige Rechenoperationen sparen, wenn man Mehrfachkno-ten nach der Methode aus Folgerung 3.1.3 einfügt. Nicht größer ist die An-zahl zu berechnender Affinkombinationen, wenn man das einfache Verfah-ren verwendet, jedoch nur strikte Konvexkombinationen ausführt.

3.2 Der Oslo-Algorithmus

Wir übernehmen die am Anfang des letzten Abschnitts vereinbarten Be-zeichnungen.

Satz 3.2.1 (Oslo-Algorithmus). Es seien i ∈ [0, m + l − 1]Z und r ∈ [i, i + k]Zbeliebig gewählt. Dann existiert ein j ∈ [k, m− 1]Z mit yr ∈ [xj, xj+1) und es gilt

Pi,y = f j,x(yi+1, . . . , yi+k).

Beweis. Es seien i ∈ [0, m + l − 1]Z und r ∈ [i, i + k]Z beliebig gewählt.Dann gibt es ein j ∈ [k, m− 1]Z mit yr ∈ [xj, xj+1), weil y = y0,m+k+lnach Voraussetzung eine k-reguläre Verfeinerung der k-regulären Knotense-quenz x = x0,m+k ist. Daher existiert aber auch ein s ∈ [i, i + k]Z, so dass∅ 6= [ys, ys+1) ⊆ [xj, xj+1). Nach Folgerung 2.3.4 können wir somit denSchluss

Pi,y = fs,y(yi+1, . . . , yi+k) = f j,x(yi+1, . . . , yi+k)

ziehen.

50

Page 59: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.2 Der Oslo-Algorithmus

f j,x(xj−2, xj−1, xj) f j,x(xj−1, xj, xj+1) f j,x(xj, xj+1, xj+2) f j,x(xj+1, xj+2, xj+3)

f j,x(xj−1, xj, yi+1) f j,x(xj, yi+1, xj+1) f j,x(yi+1, xj+1, xj+2)

f j,x(xj, yi+1, yi+2) f j,x(yi+1, yi+2, xj+1)

f j,x(yi+1, yi+2, yi+3)

Abbildung 3.2: Der Oslo-Algorithmus im kubischen Fall: Berechnung einesneuen Kontrollpunktes.

Bemerkung 3.2.2. Mit der gleichen Begründung wie in Bemerkung 3.1.2 kön-nen wir in Satz 3.2.1 die neuen Kontrollpunkte

Pi,y = f j,x(yi+1, . . . , yi+k)

für i ∈ [0, m + l − 1]Z durch Anwendung des Blossoming-Algorithmus be-stimmen. Für jeden einzelnen müssen wir dabei k(k + 1)/2 (nicht notwendigkonvexe) Affinkombinationen aufwenden. Um alle Pi,y zu berechnen, sinddeshalb (m + l)k(k + 1)/2 Affinkombinationen nötig. Dies ist deutlich un-günstiger als beim Algorithmus von Böhm.

Anmerkung 3.2.3. Wählen wir in Satz 3.2.1 r = i, so erhalten wir den klassi-schen Oslo-Algorithmus 2 nach Cohen u. a. [16].

Bemerkung 3.2.4. (a) Der in Satz 3.2.1 vorgestellte Oslo-Algorithmus arbeitetaugenscheinlich nicht in allen Situationen optimal. So wird beispielswei-se auch dann ein volles Dreieckschema des Blossoming-Algorithmus be-rechnet, wenn ein Kontrollpunkt unverändert bleibt. In [35] beschreibenLyche und Mørken den so genannten verbesserten Oslo-Algorithmus, derderartige Ineffizienzen beseitigt und dabei insbesondere nur strikt kon-vexe Affinkombinationen ausführt. Andererseits ist seine Implementie-rung deutlich aufwendiger und die Worst-Case-Komplexität kaum bes-ser als die des Standard-Verfahrens.

(b) Anstatt die Bestimmung eines einzelnen neuen Kontrollpunktes zu op-timieren, kann man versuchen, Überlappungen in den Rechenschematabenachbarter Kontrollpunkte auszunutzen (vgl. Ausblick 2.2.8). Barryund Zhu schlagen in [6] eine Methode vor, die auf Goldmans Algorith-mus zum Wechsel der progressiven Basis beruht. Dabei werden je k + 1

51

Page 60: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

aufeinander folgende Kontrollpunkte simultan berechnet. Durch Aus-lassen gewisser Stufen im Blossoming-Algorithmus erreichen sie insge-samt eine Komplexität auf dem Niveau des Algorithmus von Böhm.

Am Beispiel einer unstetigen Spline-Kurve macht man sich jedoch leichtklar, dass selbst zwei benachbarte Kontrollpunkte nicht notwendig eingemeinsames polynomiales Segment beeinflussen. Das Verfahren vonBarry und Zhu funktioniert tatsächlich nur dann sicher, wenn alle inne-ren Knoten der k-regulären Ausgangssequenz einfach sind. Es bestehtzwar die Hoffnung den Algorithmus durch explizites Abfangen solcherFälle auch für die allgemeine Situation nutzbar machen zu können, diepraktische Bedeutung einer daraus resultierenden Methode ist aber zu-mindest im aktuellen Kontext als eher gering einzustufen, weil sich er-warten lässt, dass sich ihre komplexe Implementierung negativ auf ihreLaufzeit auswirkt.

Als Kompromiss zwischen dem verbesserten Oslo-Algorithmus und demVerfahren von Barry und Zhu wollen wir eine in der Literatur bisher nichtnäher betrachtete Variante des Oslo-Algorithmus ansehen, bei der sich zweibenachbarte Kontrollpunkte simultan berechnen lassen. Hierbei kommenwir mit einer einfachen Fallunterscheidung aus.

Satz 3.2.5 (Modifizierter Oslo-Algorithmus). Zu i ∈ [0, m + l − 2]Z gibt es einj ∈ [k, m− 1]Z mit yi ∈ [xj, xj+1) und es gilt

Pi,y =

{f j+µx(yi+1),x(yi+1, . . . , yi+k) , µx(yi+1) ∈ [0, k]ZPj,x , µx(yi+1) = k + 1

sowie

Pi+1,y =

{f j+µx(yi+1),x(yi+2, . . . , yi+k+1) , µx(yi+1) ∈ [0, k]ZPj+1,x , µx(yi+1) = k + 1.

Außerdem haben wir für i = m + l − 1

Pm+l−1,y = Pm−1,x.

Beweis. Es sei zunächst i = m + l − 1. Dann ist

∅ 6= [ym+l−1, ym+l) ⊆ [xm−1, xm),

denn nach Voraussetzung ist y = y0,m+k+l eine k-reguläre Verfeinerung derk-regulären Knotensequenz x = x0,m+k. Nach Folgerung 2.3.4 können wirdaher

Pm+l−1,y = fm+l−1,y(ym+l , . . . , ym+l+k−1)

= fm−1,x(xm, . . . , xm+k−1)= Pm−1,x

52

Page 61: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.2 Der Oslo-Algorithmus

schließen. Sei nun i ∈ [0, m + l − 2]Z. Die Existenz eines j ∈ [k, m− 1]Z mityi ∈ [xj, xj+1) erhalten wir wie im Beweis zu Satz 3.2.1. Ist µx(yi+1) = 0, soist yi+1 ∈ [xj, xj+1) und die Behauptung folgt aus Satz 3.2.1.

Andernfalls muss yi+1 = xj+1, also insbesondere µx(yi+1) = µj+1,x gelten.Haben wir in dieser Situation µj+1,x ≤ µi+1,y ≤ k, so können wir wegen

∅ 6= [yi+µi+1,y , yi+µi+1,y+1) ⊆ [xj+µj+1,x , xµj+1,x+1)

nach Folgerung 2.3.4

Pi,y = fi+µi+1,y,y(yi+1, . . . , yi+k) = f j+µj+1,x,x(yi+1, . . . , yi+k)

sowie

Pi+1,y = fi+µi+1,y,y(yi+2, . . . , yi+k+1) = f j+µj+1,x,x(yi+2, . . . , yi+k+1)

schließen. Ist µj+1,x ≤ k und µi+1,y = k + 1, so haben wir

xj ≤ yi < xj+1 = yi+1 = · · · = yi+k+1

und F = Fx ist stetig in xj+1. Wegen

∅ 6= [yi+k+1, yi+k+2) ⊆ [xj+µj+1,x , xµj+1,x+1)

können wir deshalb nach Satz 3.2.1 und Folgerung 2.3.4 den Schluss

Pi,y = f j,x(yi+1, . . . , yi+k)

= Fj,x(xj+1)

= Fj+µj+1,x,x(xj+1)

= f j+µj+1,x,x(yi+2, . . . , yi+k+1)

= fi+k+1,y(yi+2, . . . , yi+k+1)

= Pi+1,y

ziehen. Im verbleibenden Fall µj+1,x = k + 1 erhalten wir

Pi,y = f j,x(yi+1, . . . , yi+k) = f j,x(xj+1, . . . , xj+k) = Pj,x

sowie

Pi+1,y = f j+k+1,x(yi+2, . . . , yi+k+1) = f j+k+1,x(xj+2, . . . , xj+k+1) = Pj+1,x

ebenfalls aus Satz 3.2.1 und Folgerung 2.3.4. Damit ist der Beweis abge-schlossen.

53

Page 62: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

f j,x(xj−2, xj−1, xj) f j,x(xj−1, xj, xj+1) f j,x(xj, xj+1, xj+2) f j,x(xj+1, xj+2, xj+3)

f j,x(xj−1, xj, yi+2) f j,x(xj, yi+2, xj+1) f j,x(yi+2, xj+1, xj+2)

f j,x(xj, yi+2, yi+3) f j,x(yi+2, yi+3, xj+1)

f j,x(yi+1, yi+2, yi+3) f j,x(yi+2, yi+3, yi+4)

Abbildung 3.3: Der modifizierte Oslo-Algorithmus im kubischen Fall: Si-multane Berechnung zweier neuer Kontrollpunkte.

Bemerkung 3.2.6. In Abbildung 3.3 ist das Schema zur simultanen Berech-nung zweier benachbarter Kontrollpunkte im kubischen Fall dargestellt. Inallgemeiner Situation benötigen wir k(k + 1)/2 + 1 (nicht notwendig konve-xe) Affinkombinationen, um diese zu bestimmen.

Um alle neuen Kontrollpunkte Pi,y, i ∈ [0, m + l − 1]Z, zu ermitteln, sinddeshalb ⌊

m + l2

⌋(k(k + 1)

2+ 1)

Affinkombinationen aufzuwenden. Dies ist deutlich besser als beim klas-sischen Oslo-Algorithmus. Weitere Rechenoperationen lassen sich einspa-ren, wenn man den nach Bemerkung 2.2.7 (c) modifizierten Blossoming-Algorithmus verwendet.

3.3 Matrix-Verfahren

Der Vollständigkeit halber wollen wir noch einige kurze Bemerkungen zumatrixorientierten Lösungsverfahren für das Knoteneinsetzproblem 1.5.4 ma-chen. Für eine ausführliche Diskussion sei auf Barry und Goldman [5] ver-wiesen.

Das Problem besteht darin, Kontrollpunkte bezüglich einer verfeinertenKnotensequenz aus solchen zu bestimmen, die bezüglich einer groben Se-quenz gegebenen sind. In den bisher betrachteten punktorientierten Lösungs-methoden wurden die neuen Kontrollpunkte stets mittels einer Folge vonAffinkombinationen direkt aus den alten berechnet.

Die Lösbarkeit des Knoteneinsetzproblems haben wir mit Satz 1.4.13 be-gründet. Unter Verwendung unserer üblichen Notation ergibt sich danachsofort die Existenz von Koeffizienten αj,k,x,y(i) für i ∈ [0, m + l − 1]Z und

54

Page 63: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.3 Matrix-Verfahren

j ∈ [0, m− 1]Z, so dass

Nj,k,x =m+l−1

∑i=0

αj,k,x,y(i)Ni,k,y (3.3.1)

gilt. Aufgrund ihrer Eigenschaften nennt man die αj,k,x,y auch diskrete B-Splines. Nach Satz 2.3.3 ist klar, dass sich diese auch mit Hilfe von zu denpolynomialen Segmenten normalisierter B-Splines gehörenden Polarformenausdrücken lassen. Beispielsweise ergibt sich auf diesem Weg die Rekursi-onsformel diskreter B-Splines als Spezialfall von Satz 2.3.1. An dieser Stellewollen wir diese Zusammenhänge nicht weiter vertiefen.

Wenden wir (3.3.1) auf unser allgemeines Knoteneinsetzproblem 1.5.4 anund vertauschen die Summationsreihenfolge, so ergibt sich

F =m−1

∑j=0

Pj,xNj,k,x

=m−1

∑j=0

Pj,x

m+l−1

∑i=0

αj,k,x,y(i)Ni,k,y

=m+l−1

∑i=0

(m−1

∑j=0

Pj,x αj,k,x,y(i)

)︸ ︷︷ ︸

=Pi,y

Ni,k,y.

Dafür können wir auch[Pi,y]m+l−1

i=0 =[αj,k,x,y(i)

]m+l−1,m−1i,j=0︸ ︷︷ ︸

=:Mx,y

[Pj,x]m−1

j=0

schreiben. Nach dem Oslo-Algorithmus wissen wir, dass jeweils höchstensk + 1 aufeinander folgende alte Kontrollpunkte einen Beitrag zu einem neu-en liefern. Daraus können wir schließen, dass die Verfeinerungsmatrix Mx,yeine Bandstruktur besitzt.

Kennen wir Mx,y, so können wir das Knoteneinsetzproblem für belie-bige Kontrollpunkte Pj,x mittels einer einfachen Matrix-Multiplikation lö-sen. Deshalb werden Matrix-Verfahren häufig in Situationen eingesetzt, indenen mehrere Sätze von Kontrollpunkten bezüglich fester Knotensequen-zen transformiert werden sollen. Als praxisrelevantes Beispiel können wirTensorprodukt-Spline-Flächen angeben.

Eine Möglichkeit, die Einträge der Verfeinerungsmatrix (spaltenweise) zubestimmen, ist es, die m Knoteneinsetzprobleme (3.3.1), j ∈ [0, m− 1]Z, mitHilfe eines punktorientierten Algorithmus zu lösen. Nutzt man die spezielle

55

Page 64: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

αi−3,3,x,y(i) αi−2,3,x,y(i) αi−1,3,x,y(i) αi,3,x,y(i)

• • •

• •

1

Abbildung 3.4: Der Oslo-Algorithmus im kubischen Fall: Bestimmung derBeiträge alter Kontrollpunkte zu einem neuen.

Struktur von (3.3.1) aus, so benötigt man dafür mit dem Algorithmus vonBöhm insgesamt lk(k + 1) Affinkombinationen (vgl. Böhm [8]).

Umgekehrt kann man versuchen direkt zu ermitteln, welchen Beitrag diealten Kontrollpunkte zu einem neuen liefern, die Einträge von Mx,y alsozeilenweise zu bestimmen. Auch solche Verfahren lassen sich aus unserenpunktorientierten Methoden gewinnen. Dazu merkt man sich zunächst dieGewichte, die in den zur Ermittlung eines neuen Kontrollpunktes benötig-ten Affinkombinationen auftreten und fügt diese bei einem Rückwärtslaufdurch das Rechenschema entsprechend zusammen.

Dieses Vorgehen eignet sich besonders für Algorithmen, deren Rechentie-fe unabhängig von der Anzahl eingefügter Knoten ist. Abbildung 3.4 zeigtdas aus dem Oslo-Algorithmus 3.2.1 resultierende Rechenschema für denkubischen Fall. Dies entspricht gerade dem Oslo-Algorithmus 1 aus Co-hen u. a. [16]. Mit dieser Methode lässt sich die Verfeinerungsmatrix Mx,ymit dem Äquivalent von insgesamt (m + l)k(k + 3)/2 Affinkombinationenaufstellen (vgl. wieder Böhm [8]). Anders als im punktorientierten Fall istder Oslo-Algorithmus im Kontext matrixbasierter Verfahren konkurrenzfä-hig im Vergleich mit dem Algorithmus von Böhm.

Nimmt man anstelle des gewöhnlichen den modifizierten Oslo-Algorith-mus 3.2.5 zur Grundlage eines zeilenorientierten Verfahrens, so lassen sichweitere Rechenoperationen einsparen. In diesem Zusammenhang wäre esauch sinnvoll, den Knoteneinsetzalgorithmus von Barry und Zhu [6] (vgl.Bemerkung 3.2.4) noch einmal näher zu betrachten.

Eine detaillierte Analyse dieser Methoden würde den Rahmen dieser Ar-beit sprengen, ist es aber sicherlich wert nachgeholt zu werden.

56

Page 65: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.4 Ein experimenteller Vergleich

Algorithmus Anzahl benötigter Affinkombinationen

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 96 24576 156

Oslo 468 49428 588

Oslo (modifiziert) 266 28826 336

(a) Standard-Verfahren.

Tabelle 3.1: Rechenaufwand ausgewählter punktorientierter Knoteneinsetz-algorithmen im kubischen Fall.

3.4 Ein experimenteller Vergleich

Zum Abschluss dieses Kapitels wollen wir die vorgestellten punktorien-tierten Knoteneinsetzalgorithmen experimentell bezüglich Rechenaufwand,tatsächlicher Laufzeit sowie Fehlerverhalten unter Verwendung von Gleit-komma-Arithmetik (vgl. Goldberg [20]) vergleichen. Dadurch soll zumin-dest ein Eindruck entstehen, ob und wie sich unsere theoretischen Erkennt-nisse in der Praxis auswirken.

Der Vergleich ist durchgeführt mit der im nachfolgenden Kapitel vorge-stellten Java-Bibliothek.

Wir präsentieren hier nur einen Ausschnitt der ermittelten Ergebnisse. Dievollständigen Resultate für die Grade zwei, drei und vier, jeweils gerechnetin einfacher beziehungsweise doppelter Genauigkeit, finden sich auf dembeiliegenden Datenträger im Verzeichnis »comparison«. Dort zu finden sindauch Details über das jeweils zugrunde gelegte Modellproblem. Dabei han-delt es sich um eine Spline-Kurve in der Ebene. Ihre reguläre Ausgangsse-quenz enthält gemischt Knoten aller zulässigen Vielfachheiten. Die zuge-hörigen Kontrollpunkte sind bezüglich einer Komponente äquidistant undbezüglich der zweiten mit wachsendem Abstand angeordnet.

Diskutiert werden der Algorithmus von Böhm, der klassische und dermodifizierte Oslo-Algorithmus jeweils in einer einfachen Version auf Basisdes gewöhnlichen Blossoming-Algorithmus sowie einer optimierten Varian-te, die stattdessen den nach Bemerkung 2.2.7 (c) modifizierten Blossoming-Algorithmus verwendet und nur nichttriviale Affinkombinationen ausführt.Als Referenz dient uns der verbesserte Oslo-Algorithmus.

57

Page 66: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

Algorithmus Anzahl benötigter Affinkombinationen

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 96 24576 76

Oslo 192 49152 148

Oslo (verbessert) 120 49048 124

Oslo (modifiziert) 112 28672 100

(b) Optimierte Verfahren.

Tabelle 3.1: Rechenaufwand ausgewählter punktorientierter Knoteneinsetz-algorithmen im kubischen Fall.

Untersucht wird das Verhalten dieser Methoden bei Übergang zu stück-weiser Bernstein-Bézier-Darstellung sowie bei äquidistanter Unterteilungjedes nichtleeren Segments der Ausgangssequenz mit einem beziehungs-weise 256 neuen Knoten.

3.4.1 Rechenaufwand

Zunächst betrachten wir den Rechenaufwand der Standard-Verfahren. Ta-belle 3.1a können wir entnehmen, dass Böhms Methode für jede der Ope-rationen deutlich weniger Affinkombinationen benötigt als beide Variantendes Oslo-Algorithmus. Besonders schlecht schneiden letztere bei der einfa-chen Subdivision ab.

Entsprechend unserer Erkenntnisse aus Abschnitt 3.2 reduziert der mo-difizierte Oslo-Algorithmus den Rechenaufwand gegenüber der klassischenMethode, im hier betrachteten kubischen Fall, gleichmäßig auf knapp siebenZwölftel. Beim verbesserten Oslo-Algorithmus (in Tabelle 3.1b) hängt die Er-sparnis gegenüber dem gewöhnlichen Verfahren dagegen stark von der be-trachteten Operation ab. Während er bei der einfachen Unterteilung nur gutein Viertel und beim Übergang zu stückweiser Bernstein-Bézier-Darstellungnur gut ein Fünftel der Rechenschritte benötigt, fallen die Verbesserungenmarginal aus, wenn viele neue Knoten pro Segment einzufügen sind.

Tabelle 3.1b zeigt, wie es sich auswirkt, wenn man den gewöhnlichenBlossoming-Algorithmus durch das modifizierte Verfahren ersetzt und nur

58

Page 67: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.4 Ein experimenteller Vergleich

Algorithmus Relative Rechenzeit

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 0,55 0,57 0,63

Oslo 1,60 1,03 1,63

Oslo (modifiziert) 0,94 0,56 0,95

(a) Standard-Verfahren.

Tabelle 3.2: Laufzeit ausgewählter punktorientierter Knoteneinsetzalgorith-men bei doppelter Genauigkeit im kubischen Fall.

nichttriviale Affinkombinationen ausführt. Offenbar arbeitet der Algorith-mus von Böhm bereits in seiner Grundfassung optimal, wenn es darumgeht, nicht bereits in der alten Sequenz vorhandene Knoten einfach einzufü-gen. Gut die Hälfte der Rechenschritte lassen sich dagegen beim Wechsel zustückweiser Bernstein-Bézier-Repräsentation einsparen.

Ähnlich wie beim Vergleich zwischen einfachem und verbessertem Oslo-Algorithmus fallen die Unterschiede zwischen den gewöhnlichen und opti-mierten Varianten der Oslo- beziehungsweise modifizierten Oslo-Methodeaus. Große Verbesserungen gibt es bei Übergang zu stückweiser Bernstein-Bézier-Darstellung und einfacher Subdivision, hingegen kaum Veränderun-gen im Falle vieler neuer Knoten pro Segment. Bei Verwendung des modifi-zierten Blossoming-Algorithmus sind im Experiment alle Affinkombinatio-nen konvex.

Insgesamt zeigt sich, dass Böhms Methode die geringste arithmetischeKomplexität aufweist. Der modifizierte Oslo-Algorithmus unterbietet dasherkömmliche Verfahren in allen Punkten, in seiner optimierten Fassungauch den verbesserten Oslo-Algorithmus.

3.4.2 Laufzeit

Wir wollen nun beobachten, wie sich die Ergebnisse zum Rechenaufwandin der Laufzeit bezüglich einer konkreten Implementierung niederschlagen.

Im folgenden Vergleich ist der verbesserte Oslo-Algorithmus leicht bevor-teilt, weil dessen Implementierung nach [1] direkt auf Knoten und Kontroll-punkte zurückgreift, während die anderen Methoden im Sinne einer modu-

59

Page 68: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

Algorithmus Relative Rechenzeit

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 0,58 0,61 0,59

Oslo 1,54 1,22 1,47

Oslo (verbessert) 1,00 1,00 1,00

Oslo (modifiziert) 0,92 0,65 0,87

(b) Optimierte Verfahren.

Tabelle 3.2: Laufzeit ausgewählter punktorientierter Knoteneinsetzalgorith-men bei doppelter Genauigkeit im kubischen Fall.

laren Struktur über Polarformen gehen.Um den Einfluss von Nebenbedingungen zu minimieren und eine brauch-

bare Messgrundlage zu erreichen, werden alle Operationen vielfach ausge-führt. Die ermittelte Rechenzeit ist in Relation zu der des verbesserten Oslo-Algorithmus angegeben.

Tabelle 3.2a bestätigt unsere Resultate zum Rechenaufwand. Der Algo-rithmus von Böhm arbeitet insgesamt am schnellsten und der modifizierteOslo-Algorithmus unterbietet den klassischen im Rahmen der Messgenau-igkeit wieder gleichmäßig um den Faktor sieben Zwölftel. Einzige Überra-schung ist, dass der modifizierte Oslo-Algorithmus bei der äquidistantenUnterteilung mit 256 Knoten bis an Böhms Methode heranreicht.

Ein Vergleich mit dem verbesserten Oslo-Algorithmus wie auch mit dergesamten Tabelle 3.2b zeigt, dass Optimierungen nicht kostenlos zu habensind. So hat der verbesserte Oslo-Algorithmus trotz teilweise deutlich ge-ringerem arithmetischem Aufwand eine durchgehend höhere Laufzeit alsder modifizierte. Auch bei den anderen Methoden verhindern offenbar diedurch die Optimierungen selbst verursachten Kosten, dass sich der teilweisestark reduzierte Rechenaufwand signifikant auf die Laufzeit überträgt. Dasich zudem oft nur in gewissen Fällen die Anzahl benötigter Affinkombi-nationen gewichtig verringert, liegt die Laufzeit in den anderen Situationenhäufig sogar über der der primitiven Verfahren.

Ob eine bestimmte Optimierung sinnvoll ist, hängt damit stark von derkonkreten Anwendung ab. Nicht unterschätzen sollte man auch den erhöh-

60

Page 69: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3.4 Ein experimenteller Vergleich

Algorithmus Maximaler absoluter Fehler in ‖·‖∞ · 10−15

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 3,553 454,748 4,737

Oslo 14,211 15,822 4,737

Oslo (modifiziert) 14,211 12,320 4,737

(a) Standard-Verfahren.

Tabelle 3.3: Fehlerverhalten ausgewählter punktorientierter Knoteneinsetz-algorithmen bei doppelter Genauigkeit im kubischen Fall.

ten Implementierungsaufwand, den eine solche Modifikation verursachenkann. Zudem haben wir mit dem einfachen Algorithmus von Böhm ein un-kompliziertes und effizientes Verfahren zur Hand, das den meisten Ansprü-chen genügen sollte.

3.4.3 Fehlerverhalten

Zum Schluss wollen wir uns noch kurz das Fehlerverhalten der einzelnenMethoden ansehen.

Dazu werden alle Rechenoperationen einmal rational exakt und ein zwei-tes Mal unter Verwendung von Gleitkomma-Arithmetik ausgeführt. An-schließend werden die errechneten Kontrollpunkte bezüglich der Tscheby-scheff-Norm verglichen. Die jeweils maximalen Werte sind mit einem derRechengenauigkeit entsprechenden Normierungsfaktor in den Tabellen 3.3aund 3.3b aufgeführt.

Zwischen den einzelnen Methoden zeigen sich kaum Unterschiede imFehlerverhalten. Die einzig signifikante Abweichung weist der Algorithmusvon Böhm bei der 256-fachen Unterteilung auf. Im Gegensatz zu den Oslo-Verfahren hängt bei Böhms Methode die Tiefe des Rechenschemas zur Be-stimmung der verfeinerten Kontrollpunkte, gesehen von der Ausgangsse-quenz, von der Anzahl einzufügender Knoten ab. Dies begünstigt die Fort-pflanzung von Rechenfehlern. Die erhaltene Abweichung in der Größenord-nung 10−12 ist jedoch kaum von praktischer Bedeutung.

Insgesamt erweisen sich alle Methoden als außerordentlich stabil.

61

Page 70: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

3 Knoteneinsetzalgorithmen

Algorithmus Maximaler absoluter Fehler in ‖·‖∞ · 10−15

ÄquidistanteUnterteilung

Übergang zustückweiserBézier-Darstellung1 Knoten 256 Knoten

Böhm 3,553 454,748 4,737

Oslo 1,777 15,822 4,737

Oslo (verbessert) 1,777 15,822 4,737

Oslo (modifiziert) 7,106 12,320 4,737

(b) Optimierte Verfahren.

Tabelle 3.3: Fehlerverhalten ausgewählter punktorientierter Knoteneinsetz-algorithmen bei doppelter Genauigkeit im kubischen Fall.

3.4.4 Fazit

Trotz seines kleinen Schönheitsfehlers in der letzten Runde empfiehlt sichder Algorithmus von Böhm als zu bevorzugende Methode zum punktori-entierten Lösen des Knoteneinsetzproblems. Er zeichnet sich aus durch Ein-fachheit und Effizienz.

Die Oslo-Verfahren sind in diesem Kontext nur zweite Wahl. Wie wir aberin Abschnitt 3.3 angedeutet haben, kann sich dies im Bereich matrixbasier-ter Methoden ändern. Darüber hinaus bleibt offen, in welchen konkreten Si-tuationen Matrix-Verfahren punktorientierten vorzuziehen sind. Neben derFrage nach der Komplexität ist dabei auch auf das Fehlerverhalten zu ach-ten.

62

Page 71: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4 Implementierung

Ein letztes Ziel dieser Arbeit war es, die behandelten (punktorientierten)Knoteneinsetzalgorithmen zu implementieren.

Die im ersten Abschnitt beschriebene Bibliothek fasst alle diese Metho-den zusammen. Ihr modularer Aufbau berücksichtigt dabei unsere über denBlossoming-Ansatz gewonnenen Erkenntnisse. Wann immer möglich wer-den Operationen auf Spline-Kurven an entsprechende Polarformen dele-giert. Die konsequente Verwendung typparametrisierter Klassen erlaubt ei-ne flexible und einfache Erweiterung.

An- und abschließend stellen wir eine interaktive graphische Benutzero-berfläche vor, die das Knoteneinsetzen veranschaulicht. Gleichzeitig dientsie als Anwendungsbeispiel für die Bibliothek.

4.1 Eine generische Bibliothek

4.1.1 Werkzeuge

Als Programmiersprache kommt Java [57] zum Einsatz. Sie gilt als ausge-reift, ist weitgehend plattformunabhängig und eignet sich auch zur Ent-wicklung graphischer Benutzeroberflächen.

Seit Version 1.5.0 [61] erlaubt es Java, Klassen mit einem Typparameterzu versehen. Eine Einführung in die so genannten Generics liefert Bracha[13]. Ein oft bemühtes Anwendungsbeispiel für generische Datentypen istdas einer Liste. Häufig möchte man in Listen nur Objekte bestimmter Klas-sen zulassen. Möchte man beispielsweise eine Liste auf Äpfel beschränken,insbesondere also keine Birnen zulassen, so kann man eine spezielle Klasse»ApfelListe« schreiben, die sich von einer allgemeinen Liste nur durch ih-ren speziellen Elementtyp unterscheidet. Wird für jede Sorte Obst solch einspezieller Listentyp benötigt, kommt schnell der Wunsch auf, den jeweili-gen Elementtyp einfach als Parameter an eine allgemeine Listendefinitionübergeben zu können. Gerade dies ermöglichen Generics in Java. In Formvon Templates gibt es ein ähnliches Konzept schon länger in der Program-miersprache C++.

In der vorliegenden Bibliothek wird ausgiebiger Gebrauch von solchengenerischen Klassen gemacht. Dies führt zu großer Flexibilität und einfa-cher Erweiterbarkeit. Um die Bibliothek zum Beispiel vom realisierten zwei-

63

Page 72: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4 Implementierung

dimensionalen Fall auf die dreidimensionale Situation zu erweitern, genügtes analog zur bereits vorhandenen Klasse »Point2D« für Punkte in der Ebeneeine neue Klasse »Point3D« für Punkte im Raum bereitzustellen. Parametri-siert man die eine Spline-Kurve repräsentierende Datenstruktur »SplineCur-ve« nun mit Point3D, so erhält man direkt eine, einschließlich aller imple-mentierten Algorithmen, voll funktionsfähige Struktur für Spline-Kurvenim Raum.

Leider stellte sich in der Entwicklungsphase heraus, dass das Konzeptgenerischer Datentypen in Java, insbesondere auch ihre Implementierung,noch nicht ganz ausgereift ist. So lässt sich zum gegenwärtigen Zeitpunktbeispielsweise keine generische Fabrik realisieren, eine Klasse also, die Ob-jekte beliebigen Typs zu erzeugen vermag.

Dies schränkt die oben gelobte Flexibilität ein wenig ein. Tatsächlich müs-sen deshalb bei der beschriebenen Erweiterung vom zwei- auf den drei-dimensionalen Fall zusätzlich einige spezielle Factory-Klassen geschriebenwerden. Diese sind zwar sehr einfach und nach einem vorgegebenen Musteraufgebaut, aber solch mechanische Code-Reproduktion wollten Generics jagerade überflüssig machen.

Schließlich wurden einige Fehler im Java-Compiler entdeckt. Zum Teilsind diese zwar von Sun Microsystems bestätigt, jedoch bisher nicht beho-ben. Eine Zusammenstellung findet sich im Verzeichnis »bugs« auf dem bei-liegenden Datenträger.

4.1.2 Aufbau

Wir wollen noch kurz den Aufbau der Bibliothek auf Klassenebene darle-gen. Für Details sei auf die ausführliche Dokumentation der Schnittstellenverwiesen, die sich auf dem beiliegenden Datenträger im Verzeichnis »doc«befindet. Dort, im Verzeichnis »src«, ist auch der Quellcode abgelegt.

In Abbildung 4.1a dargestellt sind einige Grundstrukturen. Im Wesentli-chen handelt es sich dabei um Schnittstellen. Lediglich »Float32«, »Float64«und »Rational« sowie »Point2D« sind Klassen. Die ersten drei simulierenElemente eines geordneten Körpers, die letzte repräsentiert einen Punkt inder Ebene. Im Gegensatz zu den in Javas Standard-Bibliothek geliefertennumerischen Klassen sind die hier definierten »mutable«, Exemplare die-ser Typen also in ihrem Wert veränderlich. Dies beugt einer massenhaftenErzeugung neuer Objekte vor, die sich andernfalls bei unseren zahlreichenRechenoperationen einstellen würde.

Die höheren Strukturen sind in Abbildung 4.1b zusammengefasst. Wäh-rend eine gewöhnliche Sequenz keine Anforderungen an ihren Typparame-ter stellt, lässt sich eine Knotensequenz nur mit Elementen eines im Sinneder Schnittstelle »OrderedField« geordneten Körpers parametrisieren. Über

64

Page 73: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4.1 Eine generische Bibliothek

Point2DS: Field<S>

AffineSpaceS: Field<S>P: AffineSpace<S, P>

EquivalenceT: Equivalence<T>

MutableT: Mutable<T>

OrderT: Order<T>

FieldS: Field<S>

OrderedFieldS: OrderedField<S>

Float32 Float64 Rational

<<bind>> <P -> Point2D<S>>

<<bind>> <T -> P> <<bind>> <T -> P>

<<bind>> <T -> S> <<bind>> <T -> S>

<<bind>> <T -> S>

<<bind>> <S -> Float32> <<bind>> <S -> Float64> <<bind>> <S -> Rational>

(a) Grundstrukturen.

Abbildung 4.1: Aufbau der generischen Bibliothek.

65

Page 74: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4 Implementierung

SequenceT

KnotSequenceS: OrderedField<S>

PolarFormS: OrderedField<S>P: AffineSpace<S, P>

SplineCurveS: OrderedField<S>P: AffineSpace<S, P>

FactoryT

<<bind>> <T -> S>

<<bind>> <T -> P> <<bind>> <T -> P>

<<bind>> <T -> S>

<<bind>> <T -> P>

<<bind>> <T -> S>

<<bind>> <T -> P>

(b) Höhere Strukturen.

Abbildung 4.1: Aufbau der generischen Bibliothek.

66

Page 75: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4.2 Eine graphische Benutzeroberfläche

entsprechende Funktionen lässt sich prüfen, ob eine Knotensequenz regulärbeziehungsweise progressiv ist. Ebenso stehen Prozeduren bereit, um einesolche zu unterteilen oder bis zu einer gewissen Knotenvielfachheit aufzu-füllen.

Nach dem Blossoming-Algorithmus 2.2.5 ist eine Polarform durch ihreWerte bezüglich einer progressiven Knotensequenz festgelegt. Als Werte-bereich können wir einen beliebigen affinen Raum wählen. Implementiertsind verschiedene Varianten des Blossoming-Algorithmus zum partiellenwie vollständigen Auswerten.

Zur Definition einer Spline-Kurven brauchen wir neben einer regulärenKnotensequenz eine Sequenz von Kontrollpunkten aus einem beliebigen af-finen Raum. In der Klasse »SplineCurve« sind unter anderem der Algorith-mus von Böhm, sowie der klassische, der modifizierte und der verbesserteOslo-Algorithmus implementiert. Einzig Letzterer arbeitet direkt mit Kno-ten und Kontrollpunkten. Alle anderen Methoden delegieren im Sinne einermodularen Struktur ihre Berechnungen an entsprechende Polarformen.

Einen Ansatz mit ähnlicher Intention verfolgt auch Liu [31] (vgl. Liu undMann [33]). Dort liegt Schwerpunkt jedoch nicht auf Knoteneinsetzalgorith-men.

4.2 Eine graphische Benutzeroberfläche

Als Anwendung der im letzten Abschnitt vorgestellten Bibliothek wurdeeine interaktive graphische Benutzeroberfläche entwickelt. Sie dient der Vi-sualisierung der behandelten Knoteneinsetzalgorithmen und soll zumindesteinen Eindruck vermitteln, wie sich diese beispielsweise im Design einset-zen lassen. Die Applikation befindet sich gemeinsam mit ihrem Quellcodeauf dem beiliegenden Datenträger.

4.2.1 Werkzeuge

Wie auch die zugrunde liegende Bibliothek, ist die graphische Benutzero-berfläche in Java programmiert. Zusätzlich benutzen wir die Java FoundationClasses (JFC/Swing) [58] und die Java Bindings for OpenGL [59, 60]. Wie ihr Na-me bereits vermuten lässt, erlauben uns Letztere auf die Graphik-BibliothekOpenGL [37, 38] zuzugreifen.

Da wir uns mit einer zweidimensionalen Darstellung begnügen, interes-siert uns an OpenGL vornehmlich die Möglichkeit Graphik hardwarebe-schleunigt auszugeben. Leider schreibt der OpenGL-Standard kein pixel-genaues Rendering vor, so dass die Bildschirmdarstellung auf verschiede-nen Systemen variieren kann. Auf den getesteten Rechnern äußerte sich dies

67

Page 76: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4 Implementierung

Abbildung 4.2: Die graphische Benutzeroberfläche.

aber nur in vernachlässigbaren Details.

4.2.2 Benutzerschnittstelle

Abbildung 4.2 zeigt ein Bildschirmfoto der entwickelten Oberfläche. Wieman sieht, ist diese dreigeteilt. Auf der großen Zeichenfläche lassen sich ei-ne ebene Spline-Kurve, ihre Kontrollpunkte, das zugehörige Kontrollpoly-gon und ihre Segmenttrennstellen anzeigen. Darunter wird die der Spline-Kurve zugrunde liegende reguläre Knotensequenz dargestellt. Mehrfach-knoten sind dabei vertikal angeordnet. Im rechten Teil des Fensters hat manschließlich die Möglichkeit, zwischen verschiedenen Einstellungen zu wäh-len. Unter anderem bestimmt man im Kasten »Show«, welche Details aufder großen Zeichenfläche sichtbar sein sollen.

Sichtbare Kontrollpunkte lassen sich manipulieren. Fährt man mit demMauszeiger über einen solchen, kann man diesen nach drücken und haltender Maustaste verschieben. Deutlich machen soll dies ein sich zu einer Handformender Cursor. Ist auch die Spline-Kurve eingeblendet, so werden die-jenigen polynomialen Segmente farblich hervorgehoben, die durch den zumanipulierenden Kontrollpunkt beeinflusst werden.

Zur Visualisierung der Spline-Kurve wird die sie definierende Knoten-sequenz verfeinert und der Algorithmus von Böhm angewandt. Das erhal-

68

Page 77: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4.2 Eine graphische Benutzeroberfläche

tene verfeinerte Kontrollpolygon repräsentiert eine stückweise lineare Ap-proximation der Kurve. An Unstetigkeitsstellen wird darauf geachtet, dieentsprechenden Kontrollpunkte nicht zu verbinden. Wie gut die Näherungsein soll, kann man über den Schieber »Resolution« regeln. Damit die »BreakPoints« auch bei geringer Auflösung interpoliert werden, gehen wir vorder Unterteilung der Knotensequenz zu einer stückweisen Bernstein-Bézier-Darstellung über.

Bewegt man sich mit dem Mauszeiger im Bereich der Knotensequenz, soweist ein grüner Punkt den Benutzer darauf hin, dass an der aktuellen Po-sition ein Knoten hinzugefügt werden kann. Ein rotes Kreuz dagegen be-deutet, dass ein weiterer Knoten an dieser Stelle die Regularitätsbedingungverletzen würde. Im ersten Fall führt ein Mausklick zum Hinzufügen, in derzweiten Situation weist ein Warnton darauf hin, dass dies nicht zulässig ist.Um dem Benutzer die Orientierung zu erleichtern, werden außerdem diedas aktuelle Segment beeinflussenden Kontrollpunkte farblich hervorgeho-ben.

Von der Option »Auto-Insertion« hängt es ab, ob ein hinzugefügter Kno-ten nur vorgemerkt oder sofort in die Sequenz eingesetzt wird. Den Befehlzum Einsetzen vorgemerkter Knoten gibt man über die Schaltfläche »In-sert«. Auf diese Weise lässt sich auch das simultane Einfügen mehrerer Kno-ten beobachten. Dabei hat man die Wahl, nach welchem Verfahren die neuenKontrollpunkte berechnet werden sollen. Im Einzelnen stehen der Algorith-mus von Böhm sowie der klassische, der verbesserte und der modifizierteOslo-Algorithmus zur Verfügung. Natürlich bleibt das Ergebnis der Einfü-geprozedur (modulo Gleitkomma-Arithmetik) unberührt von dieser Wahl.

Den Grad der Spline-Kurve kann man über den Regler »Degree« verän-dern. Ebenso wie beim Betätigen der Schaltfläche »Reset« werden Knotense-quenz und Kontrollpunkte dabei auf eine Startkonfiguration zurückgesetzt.Die Beschränkung auf Spline-Kurven bis zum Grad fünf ist rein praktischerNatur und hat keine technischen Gründe.

Unsere Diskussion endet mit einem Verweis auf Abbildung 4.3. Diese lässtdas Potential der behandelten Methoden zumindest erahnen.

69

Page 78: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

4 Implementierung

(a) Kontrollpunkte und Kontrollpolygon.

(b) Spline-Kurve und Segmenttrennstellen.

Abbildung 4.3: Ein einfaches Modell.

70

Page 79: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Schlussbemerkungen

Ziel dieser Diplomarbeit war es, die Korrektheit des Oslo-Algorithmus undverwandter Verfahren vollständig und anschaulich in einheitlicher Notationzu beweisen. Außerdem sollten alle Methoden implementiert werden.

Als entscheidendes Mittel auf dem Weg dorthin erweist sich der Blosso-ming-Ansatz. Nach Satz 2.3.3 entsprechen die Kontrollpunkte einer Spline-Kurve gewissen Werten zugehöriger Polarformen. Dieser Zusammenhangist fundamental für unseren Beweis des Oslo-Algorithmus in Satz 3.2.1. All-gemeiner führt er zu einem tiefgreifenden Verständnis des Knoteneinsetz-problems an sich und erlaubt so ein intuitives Vorgehen bei der Suche nachalternativen Lösungsmethoden. Auf diese Weise gelangen wir zum modi-fizierten Oslo-Algorithmus 3.2.5, einer Variante des klassischen Verfahrensnach der uns eine zusätzliche Affinkombination genügt, um neben einemneuen Kontrollpunkt gleich einen zweiten zu bestimmen. Alle Rechnungenstützen sich dabei auf den Blossoming-Algorithmus 2.2.5, einer Verallgemei-nerung des Algorithmus von de Casteljau.

Die im dritten Kapitel ausgeführten punktorientierten Lösungsmethodenfür das Knoteneinsetzproblem sind in einer generischen Java-Bibliothek zu-sammengefasst.

Ein auf dieser Basis geführter experimenteller Vergleich des Algorithmusvon Böhm mit den verschiedenen Ausprägungen des Oslo-Algorithmus be-stätigt praktisch die zuvor theoretisch gewonnene Erkenntnis, dass BöhmsMethode am effizientesten arbeitet, wenn es darum geht die neuen Kontroll-punkte direkt aus den alten zu berechnen. Im Kontext matrixbasierter Ver-fahren sind für eine abschließende Beurteilung weitere Untersuchungen nö-tig. Dabei sollte insbesondere auch der modifizierte Oslo-Algorithmus 3.2.5berücksichtigt werden.

In dieser Arbeit konnten bei weitem nicht alle Aspekte der Theorie desKnoteneinsetzens aufgegriffen werden. Zu einer weiteren Klasse von Kno-teneinsetzalgorithmen gelangt man über das in Ausblick 2.2.8 angedeuteteKonzept der progressiven Basis. Grundidee dieser Verfahren ist es, das Kno-teneinsetzproblem nicht einfach in der lokal polynomialen B-Spline-Basis zulösen, sondern eine solche zu wählen, die den Rechenaufwand minimiert.Sie lassen sich unter dem Stichwort »factored knot insertion« zusammen-fassen. Eine Übersicht liefern Barry und Goldman [4]. Danach gehört auchdas von Sankar, Silbermann und Ferrari [46] entdeckte Verfahren zu dieser

71

Page 80: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Schlussbemerkungen

Klasse. Weil die Basiswechsel selbst Kosten verursachen, lohnt sich das be-schriebene Vorgehen jedoch nicht in allen Situationen. Nicht abschließendgeklärt ist auch das Fehlerverhalten dieser Methoden.

All dies zeigt die Vielschichtigkeit des Knoteneinsetzproblems. Viele Fra-gen, insbesondere solche nach der Optimalität von Lösungsverfahren, sindbisweilen ungeklärt.

72

Page 81: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[1] BALAGUER, Jean-Francis: Oslo Algorithm Problem (Summary of UsefullAnswers). Usenet: sci.math.num-analysis – Message-ID: <[email protected]>. Juli 1992. – URL http://tinyurl.com/k6cya

[2] BARRY, Phillip J. ; GOLDMAN, Ronald N.: Recursive proof of Boehm’sknot insertion technique. In: Computer-Aided Design 20 (1988), Mai,Nr. 4, S. 181–182. – ISSN 0010-4485

[3] BARRY, Phillip J. ; GOLDMAN, Ronald N.: Algorithms for progressivecurves: extending B-spline and blossoming techniques to the monomi-al, power, and Newton dual bases. In: [22], S. 11–63. – ISBN 0-89871-306-4

[4] BARRY, Phillip J. ; GOLDMAN, Ronald N.: Factored knot insertion. In:[22], S. 65–88. – ISBN 0-89871-306-4

[5] BARRY, Phillip J. ; GOLDMAN, Ronald N.: Knot insertion algorithms.In: [22], S. 89–133. – ISBN 0-89871-306-4

[6] BARRY, Phillip J. ; ZHU, Rui-Feng: Another knot insertion algorithm forB-spline curves. In: Computer Aided Geometric Design 9 (1992), August,Nr. 3, S. 175–183. – ISSN 0167-8396

[7] BÖHM, Wolfgang: Inserting new knots into B-spline curves. In:Computer-Aided Design 12 (1980), Juli, Nr. 4, S. 199–201. – ISSN 0010-4485

[8] BÖHM, Wolfgang: On the efficiency of knot insertion algorithms. In:Computer Aided Geometric Design 2 (1985), September, Nr. 1–3, S. 141–143. – ISSN 0167-8396

[9] BÖHM, Wolfgang: Der de Boor-Algorithmus und Polarformen. In: EN-CARNAÇÃO, José L. (Hrsg.) ; HOSCHEK, Josef (Hrsg.) ; RIX, Joachim(Hrsg.): Geometrische Verfahren der Graphischen Datenverarbeitung: Beiträ-ge zur Graphischen Datenverarbeitung. Berlin : Springer, 1990, S. 156–167.– ISBN 3-540-53011-8

73

Page 82: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[10] BÖHM, Wolfgang ; MÜLLER, Andreas: On de Casteljau’s algorithm. In:Computer Aided Geometric Design 16 (1999), August, Nr. 7, S. 587–605. –ISSN 0167-8396

[11] BOOR, Carl de: Splines as linear combinations of B-splines. A survey. In:LORENTZ, George G. (Hrsg.) ; CHUI, Charles K. (Hrsg.) ; SCHUMAKER,Larry L. (Hrsg.): Approximation Theory II. New York, NY : AcademicPress, 1976, S. 1–47. – Überarbeitete Fassung 2003. – URL ftp://ftp.cs.wisc.edu/Approx/survey76.pdf. – ISBN 0-12-455760-0

[12] BOOR, Carl de ; HÖLLIG, Klaus: B-splines without divided differences.In: FARIN, Gerald E. (Hrsg.): Geometric Modeling: Algorithms and NewTrends. Philadelphia, PA : Society for Industrial and Applied Mathema-tics, 1987, S. 21–27. – ISBN 0-89871-206-8

[13] BRACHA, Gilad: Generics in the Java Programming Language.Juli 2004. – URL http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf

[14] CASTELJAU, Paul de Faget de ; GARDAN, Yvon (Hrsg.): Mathématiqueset CAO. Bd. 2: Formes à pôles. Paris : Hermès, 1985. – ISBN 2-86601-044-2

[15] CASTELJAU, Paul de Faget de ; GARDAN, Yvon (Hrsg.): Mathematics andCAD. Bd. 2: Shape Mathematics and CAD. London : Kogan Page, 1986. –Englische Fassung von [14]. – ISBN 1-85091-021-9

[16] COHEN, Elaine ; LYCHE, Tom ; RIESENFELD, Richard F.: Discrete B-splines and subdivision techniques in computer-aided geometric de-sign and computer graphics. In: Computer Graphics and Image Processing14 (1980), Oktober, Nr. 2, S. 87–111. – ISSN 0146-664X

[17] COHEN, Elaine ; RIESENFELD, Richard F. ; ELBER, Gershon: GeometricModeling with Splines: An Introduction. Natick, MA : A K Peters, 2001. –ISBN 1-56881-137-3

[18] CURRY, Haskell B. ; SCHOENBERG, Isaac J.: On spline distributions andtheir limits: the Polya distribution functions. In: Bulletin of the AmericanMathematical Society 53 (1947), S. 1114. – ISSN 0273-0979

[19] CURRY, Haskell B. ; SCHOENBERG, Isaac J.: On Pólya frequency func-tions IV: the fundamental spline functions and their limits. In: Journald’Analyse Mathématique 17 (1966), S. 71–107. – ISSN 0021-7670

[20] GOLDBERG, David: What every computer scientist should know aboutfloating-point arithmetic. In: ACM Computing Surveys 23 (1991), März,Nr. 1, S. 5–48. – ISSN 0360-0300

74

Page 83: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[21] GOLDMAN, Ronald N. ; BARRY, Phillip J.: Wonderful triangle: a simple,unified, algorithmic approach to change of basis procedures in com-puter aided geometric design. In: LYCHE, Tom (Hrsg.) ; SCHUMAKER,Larry L. (Hrsg.): Mathematical Methods in Computer Aided Geometric De-sign II. New York, NY : Academic Press, 1992, S. 297–320. – ISBN 0-12-460510-9

[22] GOLDMAN, Ronald N. (Hrsg.) ; LYCHE, Tom (Hrsg.): Knot Insertion andDeletion Algorithms for B-Spline Curves and Surfaces. Philadelphia, PA :Society for Industrial and Applied Mathematics, 1993. – ISBN 0-89871-306-4

[23] GONSKA, Heinz H.: CAGD I / Universität Duisburg-Essen, Fachbe-reich Mathematik, Fachgebiet Praktische Informatik. 2003–2004. – Vor-lesung

[24] HEUSER, Harro: Lehrbuch der Analysis. Teil 1. 14. Aufl. Stuttgart : Teub-ner, Dezember 2001. – ISBN 3-519-52233-0

[25] HEUSER, Harro: Lehrbuch der Analysis. Teil 2. 12. Aufl. Stuttgart : Teub-ner, Oktober 2002. – ISBN 3-519-52232-2

[26] KURZEJA, Claudia: Der Oslo-Algorithmus: Ein Algorithmus zum Einfügenvon Knoten in B-Spline-Kurven, Universität Dortmund, Institut für An-gewandte Mathematik, Lehrstuhl für Approximationstheorie, Diplom-arbeit, August 1992

[27] LEE, Eugene T. Y.: Some remarks concerning B-splines. In: ComputerAided Geometric Design 2 (1985), Dezember, Nr. 4, S. 307–311. – ISSN0167-8396

[28] LEE, Eugene T. Y.: A remark on divided differences. In: American Ma-thematical Monthly 96 (1989), August/September, Nr. 7, S. 618–622. –ISSN 0002-9890

[29] LEE, Eugene T. Y.: Yet another proof of knot insertion. In: ComputerAided Geometric Design 6 (1989), Februar, Nr. 1, S. 83–84. – ISSN 0167-8396

[30] LEE, Eugene T. Y.: Marsden’s identity. In: Computer Aided GeometricDesign 13 (1996), Juni, Nr. 4, S. 287–305. – ISSN 0167-8396

[31] LIU, Wayne: Programming Support for Blossoming: The Blossom Classes,University of Waterloo, Masterarbeit, 1995. – Auch erschienen als [32]

75

Page 84: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[32] LIU, Wayne: Programming support for blossoming: the blossom classes/ University of Waterloo, Computer Science Department. 1995 (CS-95-40). – Forschungsbericht. URL http://www.cs.uwaterloo.ca/research/tr/1995/40/CS-95-40.pdf

[33] LIU, Wayne ; MANN, Stephen: Programming support for blossoming.In: DAVIS, Wayne A. (Hrsg.) ; BARTELS, Richard M. (Hrsg.): GraphicsInterface ’96. Toronto, ON : Canadian Information Processing Society,1996, S. 95–106. – ISBN 0-9695338-5-3

[34] LYCHE, Tom: Note on the Oslo algorithm. In: Computer-Aided Design 20(1988), Juli/August, Nr. 6, S. 353–355. – ISSN 0010-4485

[35] LYCHE, Tom ; MØRKEN, Knut M.: Making the Oslo algorithm moreefficient. In: SIAM Journal on Numerical Analysis 23 (1986), Juni, Nr. 3,S. 663–675. – Nach [1]: Korrektur vom 25. September 1986. – ISSN0036-1429

[36] MANN, Stephen: Algorithms from blossoms / University of Water-loo, Computer Science Department. Oktober 1996 (CS-96-29). – For-schungsbericht. URL http://www.cs.uwaterloo.ca/research/tr/1996/29/CS-96-29.pdf

[37] NEIDER, Jackie ; DAVIS, Tom ; WOO, Mason: OpenGL ProgrammingGuide: The Official Guide to Learning OpenGL. Reading, MA : Addison-Wesley, 1993. – ISBN 0-201-63274-8

[38] OPENGL ARCHITECTURE REVIEW BOARD: OpenGL Reference Manual:The Official Reference Document for OpenGL. Reading, MA : Addison-Wesley, November 1992. – ISBN 0-201-63276-4

[39] PRAUTZSCH, Hartmut: A short proof of the Oslo algorithm. In: Compu-ter Aided Geometric Design 1 (1984), Juli, Nr. 1, S. 95–96. – ISSN 0167-8396

[40] PRAUTZSCH, Hartmut: Letter to the editor. In: Computer Aided GeometricDesign 2 (1985), Dezember, Nr. 4, S. 329. – ISSN 0167-8396

[41] QUAK, Ewald: Nonuniform B-splines and B-wavelets. In: ISKE, Armin(Hrsg.) ; QUAK, Ewald (Hrsg.) ; FLOATER, Michael S. (Hrsg.): Tutorialson Multiresolution in Geometric Modelling: Summer School Lecture Notes.Berlin : Springer, 2002, S. 101–146. – ISBN 3-540-43639-1

[42] RAMSHAW, Lyle: Blossoming: a connect-the-dots approach to spli-nes / DEC Systems Research Center. Juni 1987 (19). – For-schungsbericht. URL http://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-19.pdf

76

Page 85: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[43] RAMSHAW, Lyle: Béziers and B-splines as multiaffine maps. In: EARNS-HAW, Rae A. (Hrsg.): Theoretical Foundations of Computer Graphics andCAD. Berlin : Springer, 1988 (NATO ASI Series F: Computer and Sys-tems Sciences 40), S. 757–776. – ISBN 3-540-19506-8

[44] RAMSHAW, Lyle: Blossoms are polar forms / DEC Systems ResearchCenter. Januar 1989 (34). – Forschungsbericht. URL http://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-34.pdf

[45] RAMSHAW, Lyle: Blossoms are polar forms. In: Computer Aided Geome-tric Design 6 (1989), November, Nr. 4, S. 323–358. – Auch erschienen als[44]. – ISSN 0167-8396

[46] SANKAR, Pathamadai V. ; SILBERMANN, Martine J. ; FERRARI, Leo-nard A.: Curve and surface generation and refinement based on a highspeed derivative algorithm. In: CVGIP: Graphical Models and Image Pro-cessing 56 (1994), Januar, Nr. 1, S. 94–101. – ISSN 1049-9652

[47] SCHABACK, Robert: Multiaffine Forms in Computer-Aided Design.April 2003. – URL http://www.num.math.uni-goettingen.de/schaback/teaching/MAF_1.ps

[48] SCHOENBERG, Isaac J.: Contributions to the problem of approximati-on of equidistant data by analytic functions. Part A: On the problemof smoothing or graduation, a first class of analytic approximation for-mulae. In: Quarterly of Applied Mathematics 4 (1946), S. 45–99. – ISSN0033-569X

[49] SCHOENBERG, Isaac J.: Contributions to the problem of approximati-on of equidistant data by analytic functions. Part B: On the problem ofosculatory interpolation, a second class of analytic approximation for-mulae. In: Quarterly of Applied Mathematics 4 (1946), S. 112–141. – ISSN0033-569X

[50] SEIDEL, Hans-Peter: Knot insertion from a blossoming point of view.In: Computer Aided Geometric Design 5 (1988), Juni, Nr. 1, S. 81–86. –ISSN 0167-8396

[51] SEIDEL, Hans-Peter: Ein neuer Zugang zu B-Splines in der graphischenDatenverarbeitung. In: CAD und Computergraphik 11 (1988), Dezember,Nr. 5/6, S. 189–197. – ISSN 1011-646X

[52] SEIDEL, Hans-Peter: Computing B-spline control points. In: STRASSER,Wolfgang (Hrsg.) ; SEIDEL, Hans-Peter (Hrsg.): Theory and Practice ofGeometric Modeling. Berlin : Springer, 1989, S. 17–32. – ISBN 3-540-51472-4

77

Page 86: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Literaturverzeichnis

[53] SEIDEL, Hans-Peter: A new multiaffine approach to B-splines. In: Com-puter Aided Geometric Design 6 (1989), Februar, Nr. 1, S. 23–32. – ISSN0167-8396

[54] SEIDEL, Hans-Peter: Computing B-spline control points using polarforms. In: Computer-Aided Design 23 (1991), November, Nr. 9, S. 634–640. – ISSN 0010-4485

[55] SEIDEL, Hans-Peter: Polar forms and triangular B-spline surfaces. In:DU, Ding-Zhu (Hrsg.) ; HWANG, Frank (Hrsg.): Computing in EuclideanGeometry. Singapore : World Scientific, 1992, S. 235–286. – ISBN 981-02-0966-5

[56] STOER, Josef: Numerische Mathematik 1. 9. Aufl. Berlin : Springer, 2005.– ISBN 3-540-21395-3

[57] SUN MICROSYSTEMS: Java Technology. 1994–2006. – URL http://java.sun.com/

[58] SUN MICROSYSTEMS: Java Foundation Classes (JFC/Swing). 1994-2006. –URL http://java.sun.com/products/jfc/

[59] SUN MICROSYSTEMS: Java Bindings for OpenGL. 2003–2006 (Java Spe-cification Request 231). – URL http://jcp.org/en/jsr/detail?id=231

[60] SUN MICROSYSTEMS: Java OpenGL API Project. 2003–2006. – URLhttps://jogl.dev.java.net/

[61] SUN MICROSYSTEMS: Java 2 Platform Standard Edition 5.0 API Specificati-on. 2004. – URL http://java.sun.com/j2se/1.5.0/docs/api/

78

Page 87: Knoteneinsetzalgorithmen und das Blossoming-Prinzip · 1 Grundlagen Sind alle Koeffizienten gleich Null, so nennen wir p das Nullpolynom oder auch das triviale Polynom. Gibt es aber

Danksagung

Mein besonderer Dank gilt meiner Mutter. Sie hat meine Entscheidungenrespektiert, die daraus resultierenden Konsequenzen mitgetragen und michstets nach Kräften unterstützt. Ohne sie wäre mir ein Studium nicht möglichgewesen.

Ferner danke ich Herrn Gonska für seinen Rat und sein außergewöhnli-ches Engagement, Laura Beutel für den Vorschlag zur Themenstellung die-ser Arbeit und die Beschaffung von [26], Frank Brey für den Test der graphi-schen Benutzeroberfläche und seine Motivationsversuche, den Teilnehmerndes Oberseminars über Praktische Informatik für ihr Gehör und ihre Kom-mentare sowie allen Menschen, die an mich geglaubt haben.