Einführung in CAD Teil 2: Darstellung von Kurven und Flächen

Einführung in CAD
Teil 2: Darstellung von
Kurven und Flächen
Prof. Dr. Jürgen Koch
20. November 2015
i
Inhaltsverzeichnis
I. Motivation
II. Kurven und Flächen
1. Exakte und approximative Darstellung
2. Kurven . . . . . . . . . . . . . . . .
2.1.
Parameterdarstellung . . . . .
2.2.
Tangente . . . . . . . . . . .
2.3.
Krümmung . . . . . . . . . .
3. Flächen . . . . . . . . . . . . . . . .
3.1.
Parameterdarstellung . . . . .
3.2.
Spezielle Flächen . . . . . . .
3.3.
Tangentialebene . . . . . . .
3.4.
Kurven auf Flächen . . . . .
3.5.
Getrimmte Flächen . . . . . .
4. Übungen . . . . . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
6
7
11
15
18
18
18
24
26
28
29
III. NURBS
1. Bernsteinpolynome . . . . . . . . . . . . . . . .
1.1.
Definition der Bernsteinpolynome . . . .
1.2.
Rekursionsformel der Bernsteinpolynome
1.3.
Eigenschaften der Bernsteinpolynome . .
1.4.
Ableitung der Bernsteinpolynome . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
31
33
34
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ii
Inhaltsverzeichnis
2.
3.
4.
5.
6.
Bézier–Kurven . . . . . . . . . . . . . . .
2.1.
Definition der Bézier–Kurven . . .
2.2.
Eigenschaften der Bézier–Kurven .
2.3.
Der de Casteljau Algorithmus . . .
2.4.
Ableitung der Bézier–Kurven . . .
2.5.
Rationale Bézier–Kurven . . . . . .
B–Splines . . . . . . . . . . . . . . . . . .
3.1.
Lineare Splines . . . . . . . . . . .
3.2.
Definition der B–Splines . . . . . .
3.3.
Rekursionsformel der B–Splines . .
3.4.
Eigenschaften der B–Splines . . . .
B–Spline–Kurven . . . . . . . . . . . . . .
4.1.
Definition der B–Spline–Kurven . .
4.2.
Eigenschaften der B–Spline–Kurven
4.3.
Der Knoten–Einfügen–Algorithmus
4.4.
Rationale B–Spline–Kurven . . . .
Flächen . . . . . . . . . . . . . . . . . . .
5.1.
Tensorproduktflächen . . . . . . .
5.2.
Bézier–Flächen . . . . . . . . . . .
5.3.
B–Spline–Flächen . . . . . . . . .
5.4.
NURBS . . . . . . . . . . . . . . .
Übungen . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
39
41
42
43
45
46
52
53
57
61
61
64
67
72
73
73
76
80
82
83
1
I Motivation
2
I Motivation
3
II Kurven und Flächen
CAD–Systeme verwenden Punkte, Kurven und Flächen um Objekte im
zweidimensionalen oder dreidimensionalen Raum zu beschreiben. Neben
der Beschreibung statischer Objekte spielt die Kinematik eine wichtige
Rolle.
1. Exakte und approximative Darstellung
Abbildung II.1.: Darstellung einer Kugel durch ein Polygonnetz.
4
II Kurven und Flächen
Zwei verschiedene Darstellungsformen für Kurven und Flächen haben sich
in den klassischen CAD–Systemen etabliert. Kurven und Flächen besitzen in der Regel mathematisch exakte Darstellungen aus denen zu unterschiedlichen Zwecken näherungsweise Darstellungen abgeleitet werden.
Kurven werden in der Regel durch Polygonzüge und Flächen durch Netze
aus Dreiecken und Vierecken angenähert. Abbildung 1 zeigt die Darstelllung einer Kugel durch ein Netz aus Vierecken.
Abbildung II.2.: Subdivision Flächen.
In CAD–Systemen, die vornehmlich in der Unterhaltungsindustrie eingesetzt werden, gewinnen sogenannte Subdivision–Flächen immer mehr an
Bedeutung. Aus groben vorgegebenen Kontrollnetzen werden mit Hilfe
iterativer Algorithmen glatte Flächen erzeugt. Auch Subdivision–Flächen
liegen als Grenzwert definierte exakte mathematische Darstellungen zugrunde. In Abbildung 1 wird die Geometrie des Schachspielers durch eine
Subdivision–Fläche beschrieben.
Beispiel II.1 (Kreis Approximation)
Ein Kreis mit Radius r = 10mm soll mit einer Toleranz tol = 10−2 mm
durch ein reguläres n–Eck angenähert werden.
1 Exakte und approximative Darstellung
5
P
2
P
P1
3
α
P6
P
4
P5
Abbildung II.3.: Kreis Approximation.
Bei einem n–Eck ist der Winkel α = πn . Die Toleranz kann man durch
π tol = r − r · cos
n
bestimmen. Auflösen nach n ergibt
π
n=
arccos 1 −
tol
r
≈ 70.2423.
Zur Einhaltung der Toleranz sind mindestens 71 Punkte notwendig. Berücksichtigt man pro Punkt eine x– und eine y–Koordinate, so müssen
insgesamt 142 Werte gespeichert werden. Hingegegen benötigt die mathematisch exakte Darstellung lediglich drei Werte zum Speichern der x–
und y–Koordinaten des Mittelpunktes und des Radius. Die Approximation
des Einheitskreises durch ein Polynom benötigt in diesem Beispiel fast 50
mal mehr Daten als die mathematisch exakte Darstellung.
6
II Kurven und Flächen
Bei unserer gewählten Approximation liegt das Polygon komplett im Innern des Einheitskreises. Man kann die Kreisapproximation noch dadurch
verbessern, dass man die Punkte des regulären n–Ecks auf einen Kreis
mit optimal gewähltem Radius legt, vgl Übungsaufgabe II.1. Diese Verbesserung führt jedoch nicht zu einer deutlichen Verkleinerung von n.
Das Beispiel der Approximation des Kreises zeigt bereits die beiden wesentlichen Gründen dafür, dass man in CAD–Systemen mathematisch exakte Darstellungen für Kurven und Flächen verwendet.
Mathematisch exakte Darstellung
Die mathematisch exakte Darstellung von Kurven und Flächen hat im
Vergleich zur Darstellung mit Hilfe von Polygonzügen oder Netzen zwei
entscheidende Vorteile:
(a) Die Beschreibung von Objekten mit Hilfe mathematischer Formeln
benötigt weniger Daten und führt häufig zu effizienteren Algorithmen.
(b) Polygonzüge oder Netze haben Knicke oder eventuell sogar Löcher,
was bei manchen Operationen zu Problemen führen kann.
2. Kurven
Auf den ersten Blick scheinen CAD–Modelle ausschließlich durch Flächen beschrieben zu sein. Bei genauerer Betrachtung stellt man jedoch
fest, dass auch Kurven eine große Bedeutung haben. Die meisten Flächen
2 Kurven
7
werden über Profilkurven erzeugt. An Stellen an denen Flächen zusammentreffen entstehen Schnittkurven. Teilflächen und Löcher in Flächen
werden mit Hilfe von Trimmkurven beschrieben. Nicht zuletzt erfolgt die
Beschreibung einer Kinimatik durch Kurven.
Die mathematische Beschreibung von Kurven ist einfacher als die Beschreibung von Flächen. Wir wollen uns zunächst mit den wichtigsten
Begriffen für Kurven vertraut machen.
2.1. Parameterdarstellung
Die ersten Kurven haben wir bereits in der Schule kennengelernt, sie sind
Schaubilder von Funktionen. Das Schaubild einer Funktion stellt eine ebene Kurve dar. Allerdings lässt sich umgekehrt nicht jede Kurve als Schaubild einer Funktion darstellen.
Beispiel II.2 (Einheitskreis)
Die Kreisgleichung
x2 + y 2 = 1
bezeichnet man als implizite Darstellung des Einheitskreises. Ein Punkt
mit den Koordinaten (x/y) liegt auf dem Einheitskreis, wenn die Gleichung erfüllt ist. Beispielsweise erfüllt der Punkt mit den Koordinaten
(1/0) die Kreisgleichung, der Punkt mit den Koordinaten (1/1) erfüllt die
Kreisgleichung nicht und liegt deshalb auch nicht auf dem Einheitskreis.
Bei einer Funktion darf es zu einem x–Wert höchstens einen y–Wert
geben. Deshalb kann man den Einheitskreis nicht als Schaubild einer einzigen Funktion darstellen. Man kann sich bei diesem Beispiel jedoch noch
dadurch behelfen, dass man den oberen und den unteren Halbkreis jeweils
getrennt durch eine Funktion beschreibt.
√
√
f1 (x) = + 1 − x2 , f2 (x) = − 1 − x2 , x ∈ [0; 1].
8
II Kurven und Flächen
y
1
−1
√
+ 1 − x2
1
−1
x
√
− 1 − x2
Abbildung II.4.: Einheitskreis.
Beispiel II.3 (Spirale)
Bei einer Funktion darf es zu einem x–Wert höchstens einen y–Wert geben. Deshalb kann man eine Spiralkurve nicht als Schaubild einer Funktion
darstellen. Die Darstellung mit Hilfe von mehreren Funktion würde sich
bei diesem Beispiel auch recht umfangreich gestalten.
Bei einer Compact Disk (CD) werden die Daten in Form einer Spiralkurve
abgelegt. Im Gegensatz zur Schallplatte läuft die Spur bei einer CD von
Innen nach Außen.
2 Kurven
9
Abbildung II.5.: Spirale.
Definition II.1 (Parameterdarstellung einer Kurve) Bei der Parameterdarstellung einer Raumkurve hängen die Koordinatenfunktionen
x(t), y(t) und z(t) von einem reellen Parameter t ab.


x(t)
c(t) =  y(t)  , t ∈ I.
z(t)
Entsprechend lautet die Parameterdarstellung einer ebenen Kurve
x(t)
c(t) =
, t ∈ I.
y(t)
Der Parameter t durchläuft dabei ein beliebiges Intervall I ⊂ R.
10
II Kurven und Flächen
Beispiel II.4 (Einheitskreis)
Die Parameterdarstellung der ebenen Kurve
c(t) =
cos t
sin t
,
t ∈ [0; 2π]
stellt den Einheitskreis dar. Die Koordinatenfunktionen erfüllen die Kreisgleichung
x(t)2 + y(t)2 = cos2 t + sin2 t = 1
für alle Parameterwerte t.
Beispiel II.5 (Rationale Parametrisierung des Einheitskreis)
Weitaus weniger bekannt ist die Darstellung des Einheitskreises mit Hilfe
rationaler Funktionen
1
2t
c(t) =
, t ∈ R.
2
1 + t2 1 − t
Offensichtlich erfüllen auch hier die Koordinatenfunktionen die Kreisgleichung
x(t)2 + y(t)2 =
4t2
(1 − t2 )2
1 + 2t2 + t4
+
=
=1
(1 + t2 )2 (1 + t2 )2
(1 + t2 )2
für alle Parameterwerte t.
Aus den beiden vorangegangenen Beispielen haben wir gesehen, dass sich
der Einheitskreis auf unterschiedliche weise als parametrisierte Kurve darstellen lässt. Die Parameterdarstellung einer Kurve ist also nicht eindeutig.
2 Kurven
11
2.2. Tangente
Ein wichtiges Prinzip in der Mathematik besteht darin komplizierte Objekte näherungsweise durch einfacherer Objekte zu ersetzen. Bei Funktionen
verwendet man diese Prinzip in dem man eine Funktion durch eine Tangente an einer bestimmten Stelle annähert. Solange man sich in einer
kleinen Umgebung der Stelle befindet macht sich der Unterschied zwischen Funktion und Tangente kaum bemerkbar. Das selbe Prinzip lässt
sich auf Kurven übertragen.
Definition II.2 (Tangentenvektor einer Kurve) Den
Tangentenvektor einer Raumkurve c(t) erhält man durch Ableiten der
Koordinatenfunktionen nach dem Parameter t
 0

x (t)
c0 (t) =  y 0 (t)  , t ∈ I.
z 0 (t)
Entsprechend ergibt sich der Tangentenvektor einer ebenen Kurve
x(t)0
0
c (t) =
, t ∈ I.
y(t)0
Die Gerade durch den Kurvenpunkt c(t0 ) mit Richtungsvektor c0 (t0 )
nennt man die Tangente der Kurve c(t) zum Parameterwert t0 .
Beispiel II.6 (Tangentenvektor einer Kurve)
12
II Kurven und Flächen
(a) Die Kurve
c(t) =
cos t
sin t
,
t ∈ [0; 2π],
hat den Tangentenvektor
0
c (t) =
− sin t
cos t
.
Für den Parameterwert t = π/2 ergibt sich die Tangente im Punkt
(0/1)
−1
0
c (0) =
0
und für den Parameterwert t = 0 ergibt sich die Tangente im Punkt
(1/0)
0
0
c (1) =
.
1
Lediglich die Richtung des Tangentenvektors ändert sich, die Länge
|c0 (t)| = sin2 t + cos2 t = 1
ist immer gleich.
(b) Die Kurve
1
c(t) =
1 + t2
hat den Tangentenvektor
2t
1 − t2
1
c (t) =
(1 + t2 )2
0
,
2 − 2t
−4t
t ∈ R.
.
Für den Parameterwert t = 0 ergibt sich die Tangente im Punkt
(0/1)
2
0
c (0) =
0
2 Kurven
13
und für den Parameterwert t = 1 ergibt sich die Tangente im Punkt
(1/0)
0
0
c (1) =
.
−1
Es ändert sich also nicht nur die Richtung des Tangentenvektors,
sondern auch die Länge.
y
y
1
1
−1
1
−1
x
−1
1
x
−1
Abbildung II.6.: Unterschiedliche Parametrisierung des Einheitskreises.
In Beispiel II.6 haben wir gesehen, dass unterschiedliche Parametrisierungen dieselbe Kurve beschreiben können. Die Richtung der Tangentenvektoren ist unabhängig von der gewählten Parametrisierung. Die Wahl der
Parametrisierung hat jedoch Einfluß auf die Länge der Tangentenvektoren.
Man bezeichnet deshalb die Richtung der Tangente als eine geometrische
Eigenschaft der Kurve. Die Länge der Tangente ist keine geometrische Eigenschaft der Kurve, denn sie hängt von der gewählten Parametrisierung
ab.
Bei dem Schaubild in Abbildung 2.2 wurden für jeweils 50 gleichmäßig
verteilte Parameterwerte Punkte gezeichnet Bei der Parametrisierung auf
14
II Kurven und Flächen
der linken Seite ändert sich die Länge der Tangentenvektoren nicht. Die
Kurve wird mit konstanter Geschwindigkeit durchlaufen. Die Parametrisierung auf der rechten Seite erzeugt Tangentenvektoren mit stark unterschiedlicher Länge. Die Geschwindigkeit variiert beim Durchlauf der
Kurve stark. Für den Einsatz in Produktionsprozessen sind Parameterdarstellungen mit konstanter Geschwindigkeit besonders gut geeignet. Eine
Parameterdarstellung mit der Eigenschaft
|c0 (t)| = 1
nennt man Bogenlängenparametrisierung einer Kurve. Diese Parametrisierung ist eindeutig. Allerdings ist es bei praktischen Problemen oft schwierig die Bogenlängenparametrisierung einer Kurve zu bestimmen.
Beispiel II.7 (Schraubenlinie)
Abbildung II.7.: Schraubenlinie.
Die Parameterdarstellung einer Schraubenlinie mit Grundkreisradius a und
2 Kurven
15
Ganghöhe h lautet

a · cos t


c(t) =  a · sin t  ,
h
·t
2π

t ∈ [0; 2πn].
Die Anzahl der Windungen wird durch das Parameterintervall, d.h. durch
n festgelegt.
2.3. Krümmung
Die Krümmung einer Kurve ist ein Maß dafür, wie weit die Kurve von
der Tangente abweicht. Zur Berechnung der Krümmung benötigt man
die ersten und zweiten Ableitungen der Koordinatenfunktionen.
Definition II.3 (Krümmung einer ebenen Kurve) Die Krümmung
κ(t) einer ebenen Kurve c(t) mit den Koordinatenfunktionen x(t) und
y(t) ist definiert durch
x0 (t)y 00 (t) − x00 (t)y 0 (t) κ(t) = .
(x0 (t)2 + y 0 (t)2 )3/2 Beispiel II.8 (Krümmung einer ebenen Kurve)
(a) Bei einer Geraden ist x00 (t) = 0, y 00 (t) = 0 und somit auch die
Krümmung κ(t) = 0.
16
II Kurven und Flächen
(b) Der Einheitskreis
c(t) =
cos t
sin t
t ∈ [0; 2π],
,
hat die Krümmung
sin2 t + cos2 t κ(t) = = 1.
3/2
2
cos2 t + sin t
Definition II.4 (Krümmungskreis einer ebenen Kurve) Der Mittelpunkt des Krümmungskreises einer ebenen Kurve im Punkt c(t0 ) liegt
auf der Geraden die senkrecht zur Tangente durch den Punkt c(t0 ) verläuft. Er hat den Abstand
R(t0 ) =
1
κ(t0 )
zum Kurvenpunkt. Somit entspricht der Krümmungskreisradius dem
Kehrwert der Krümmung.
Beispiel II.9 (Krümmungskreis einer ebenen Kurve)
Die Parabel
c(t) =
t
t2
,
t ∈ R,
1
2t
hat den Tangentenvektor
c’(t) =
2 Kurven
17
und die Krümmung
κ(t) =
2
(1 + 4 t2 )3/2
.
Definition II.5 (Krümmung einer Raumkurve) Die
κ(t) einer Raumkurve c(t) ist definiert durch
κ(t) =
Krümmung
|c0 (t) × c00 (t)|
.
|c0 (t)|3
Die Definition der Krümmung einer ebenen Kurve ist ein Spezialfall der
Definition der Krümmung einer Raumkurve. Eine ebene Kurve kann man
als Raumkurve interpretieren, die in der Ebene z = 0 liegt.


 0

 00

x(t)
x (t)
x (t)
c(t) =  y(t)  ⇒ c0 (t) =  y 0 (t)  ⇒ c00 (t) =  y 00 (t)  .
0
0
0
Somit ist
|c0 (t)| = x0 (t)2 + y 0 (t)2
1/2
und
|c0 (t) × c00 (t)| = |x0 (t)y 00 (t) − x00 (t)y 0 (t)| .
Auch für Raumkurven kann man Krümmungskreise definieren. Allerdings
benötigt man dazu Begriffe aus der Differentialgeometrie (Schmiegungsebene, begleitendes Dreibein, usw.) die weit über unsere einfachen Betrachtungen von Kurven hinausführen.
18
II Kurven und Flächen
3. Flächen
3.1. Parameterdarstellung
Definition II.6 (Parameterdarstellung einer Fläche) Bei der Parameterdarstellung einer Fläche hängen die Koordinatenfunktionen x(u, v),
y(u, v) und z(u, v) von zwei reellen Parameter u und v ab


x(u, v)
S(u, v) =  y(u, v)  , u, v ∈ I.
z(u, v)
Die Parameter u und v durchlaufen dabei einen Bereich in der reellen
Ebene R2 .
3.2. Spezielle Flächen
Rotationsflächen
Rotationsflächen sind Flächen, die im Querschnitt aus konzentrischen
Kreisen bestehen. Die Achse der Kreismittelpunkte bezeichnet man als
Rotationsachse.
Wir wollen uns in der folgenden Darstellung darauf beschränken als Rotationsachse die z–Achse zu verwenden. Zur Beschreibung einer Rotationsfläche gibt man dann zu jedem z–Wert z(t) einen gewissen Radius r(t)
vor.
3 Flächen
19
Rotationsfläche
Die Rotation einer ebenen Profilkurve mit der Prameterdarstellung
r(t)
c(t) =
, t ∈ I,
z(t)
um die z–Achse erzeugt eine Rotationsfläche mit der Parameterdarstellung


r(u) · cos v
S(u, v) =  r(u) · sin v  , u ∈ I, v ∈ [0; 2π].
z(u)
Beispiel II.10 (Kugel als Rotationsfläche)
Eine Kugel entsteht durch Rotation eines Halbkreises. Den Halbkreis
kann man als parametrisierte Kurve
durch
h π πi
cos t
c1 (t) =
, t∈ − ;
,
sin t
2 2
darstellen. Dadurch erhält man die
Parametrisierung der Regelfläche


cos u · cos v
S(u, v) =  cos u · sin v  ,
sin u
h π πi
u∈ − ;
, v ∈ [0; 2π].
2 2
20
II Kurven und Flächen
Beispiel II.11 (Torus als Rotationsfläche)
Ein Torus entsteht durch Rotation eines Vollkreises. Den Vollkreis kann
man als parametrisierte Kurve durch
2 + cos t
c1 (t) =
, t ∈ [0; 2π],
sin t
darstellen. Dadurch erhält man die
Parametrisierung der Regelfläche


(2 + cos u) · cos v
S(u, v) =  (2 + cos u) · sin v  ,
sin u
u ∈ [0; 2π], v ∈ [0; 2π].
Regelflächen
Regelfläche
Verbindet man zwei Raumkurven c1 (t) und c2 (t), die über dem selben Intervall I1 parametrisiert sind, durch Geraden, so entsteht eine Regelfläche
mit der Parameterdarstellung
S(u, v) = c1 (u) + v · c2 (u),
u ∈ I1 , v ∈ I2 .
3 Flächen
21
Beispiel II.12 (Kreiszylinder als Regelfläche)
Verwendet man für c1 (t) einen Kreis
in der x–y–Ebene


cos t
c1 (t) =  sin t  , t ∈ [0; 2π],
0
und für c2 (u) = a einen konstanten
Richtungsvektor, dann entsteht der
Kreiszylinder
S(u, v) = c1 (u) + v · a,
u ∈ [0; 2π], v ∈ [0; 1].
Verbindungsfläche
Wichtige Beispiele für Regelflächen sind Verbindungsflächen zwischen
zwei Kurven,
S(u, v) = (1 − v) · c1 (u) + v · c2 (u),
u ∈ I1 ,
v ∈ [0; 1].
Für v = 0 ergibt sich c1 (u) und für v = 1 ergibt sich c2 (u).
Beispiel II.13 (Bilineare Fläche)
Die Strecke zwischen den beiden Punkten P00 und P10 kann man als
parametrisierte Kurve darstellen
c1 (u) = (1 − u) · P00 + u · P10 ,
u ∈ [0; 1].
22
II Kurven und Flächen
Analog stellt man das Geradenstück zwischen den beiden Punkten P01
und P11 als parametrisierte Kurve dar
c2 (u) = (1 − u) · P01 + u · P11 . u ∈ [0; 1].
Aus diesen beiden Kurven bildet man die Verbindungsfläche
S(u, v) = (1 − v) · c1 (u) + v · c2 (u),
u ∈ [0; 1], v ∈ [0; 1].
Durch Einsetzen ergibt sich die bilineare Fläche mit den Eckpunkten P00 ,
P01 , P10 und P11
S(u, v) = (1 − u)(1 − v) · P00 + (1 − u)v · P01 + u(1 − v) · P10 + uv · P11 .
Beispiel II.14 (Rotationshyperboloid als Regelfläche)
Die beiden Kreise


cos t
c1 (t) =  sin t 
0
und

cos(t + π2 )
c2 (t) =  sin(t + π2 )  ,
2

liegen parallel zueinander im Abstand 2. Bei dem selben t–Wert sind die
Kreise um π2 gegeneinander verdreht. Die erzeugte Regelfläche hat die
Parameterdarstellung
S(u, v) = (1 − v) · c1 (u) + v · c2 (u),
u ∈ [0; 2π], v ∈ [0; 1].
3 Flächen
23
Abwickelbare Flächen
Bei vielen Anwendungen spielen abwickelbare Flächen eine wichtige Rolle. Man bezeichnet eine Fläche als Abwickelbar, wenn die Fläche ohne
Verzerrung in die Ebene abgebildet werden kann. In der Computergrafik erzeugen Texturen auf abwickelbaren Flächen unverzerrte Bilder. Bei
Produktionsprozessen lassen sich abwickelbare Flächen aus ebenen Blechteilen einfach herstellen.
Abwickelbare Fläche
Eine Regelfläche mit der Parameterdarstellung
S(u, v) = c1 (u) + v · c2 (u),
u ∈ I1 , v ∈ I2 .
ist genau dann abwickelbar, wenn die Determinante
|c2 (u) c02 (u) c1 (u)|
für alle u Werte Null ist.
Das Kriterium für abwickelbare Flächen hängt mit den Krümmungseigenschaften der Fläche zusammen. Aus der Differentialgeometrie ist bekannt,
dass sich alle abwickelbaren Flächen als Regelflächen darstellen lassen. Genauer gesagt ist jede abwickelbare Fläche Teil eines Zylinders, eines Kegels
oder einer Tangentenfläche.
Beispiel II.15 (Zylindrische Flächen sind abwickelbar)
Eine zylindrische Fläche mit Profilkurve c1 (t) kann durch
S(u, v) = c1 (u) + v · a,
u ∈ I1 , v ∈ I2 ,
24
II Kurven und Flächen
als Regelfläche dargestellt werden. Dadurch dass die Kurve c2 (u) = a
konstant ist, ist c02 (u) = 0. Die Matrix in der Determinante enthält eine
Spalte mit Nullen und somit ist die Determinante für alle u–Werte 0.
Dreiecksflächen
Bei den bisher betrachteten Flächen war das Parametergebiet stets rechtecksförmig.
Beispiel II.16 (Dreiecksfläche)
Aus drei Punkten P100 , P010 und P001 im Raum entsteht eine Dreiecksfläche
S(u, v) = u · P100 + v · P010 + w · P001 ,
w = 1 − u − v,
Die Parameter durchlaufen dabei einen dreiecksförmigen Definitionsbereich in R2
u ∈ [0; 1], v ∈ [0; 1], 0 ≤ u + v ≤ 1.
3.3. Tangentialebene
Definition II.7 (Tangentialebene) Das Kreuzprodukt der beiden partiellen Ableitungen
Su (u, v) × Sv (u, v)
einer Fläche S(u, v) an der Stelle (u0 , v0 ) legt die Richtung des
Normalenvektors n fest. Die Ebene senkrecht zu n durch den Flächenpunkt S(u0 , v0 ) bezeichnet man als Tangentialebene an der Stelle (u0 , v0 ).
3 Flächen
25
Beispiel II.17 (Tangentialebene der Kugel)
Die Parametrisierung der Kugel


cos u · cos v
S(u, v) =  cos u · sin v 
sin u
liefert die partiellen Ableitungen


− sin u · cos v
Su (u, v) =  − sin u · sin v  ,
cos u


− cos u · sin v
Sv (u, v) =  cos u · cos v  .
0
An der Stelle (0, 0) hat der Normalenvektor die Richtung
    

0
0
−1
n =  0  ×  1  =  0 .
1
0
0
Der Normalenvektor der Tangentialebene im Flächenpunkt
 
1

0 
S(0, 0) =
0
zeigt also in Richtung der x–Achse.
26
II Kurven und Flächen
Beispiel II.18 (Normalenvektoren des Torus)
3.4. Kurven auf Flächen
Kurven auf Flächen
Eine ebene Kurve in der u–v–Ebene
u(t)
c2D (t) =
,
v(t)
t∈I
erzeugt durch Einsetzen in die Parameterdarstellung der Fläche eine
Raumkurve
c3D (t) = S(c2D (t)) = S(u(t), v(t)),
t ∈ I.
3 Flächen
27
Beispiel II.19 (Kurven auf Kreiszylinder)
Die Gerade in der u–v–Ebene besitzt die Parameterdarstellung
c2D (t) =
2πt
3t
,
t ∈ [0; 1].
v
3
2
1
π
2π u
Durch Einsetzen in die Parameterdarstellung des Zylinders


cos(u)
S(u, v) =  sin(u) 
v
ergibt sich die Schraubenlinie.


cos(2πt)
c3D (t) = S(c2D (t)) =  sin(2πt)  ,
3t
t ∈ [0; 1].
28
II Kurven und Flächen
3.5. Getrimmte Flächen
Getrimmte Flächen
Ebene geschlossene Kurven in der u–v–Ebene
u(t)
c(t) =
, t∈I
v(t)
kann man dazu verwenden um Teile einer Fläche zu spezifizieren. Ja nach
Umlaufsinn wird der Teil innerhalb der Kurve entfernt oder bleibt erhalten.
Beispiel II.20 (Getrimmter Kreiszylinder)
Bei einer mathematisch positiv orientierten Trimmkurve werden in der Regel die Punkte, deren Parameterwerte innerhalb der Kurve liegen entfernt.
v
3
2
1
π
2π u
4 Übungen
29
Bei einer mathematisch negativ orientierten Trimmkurve werden in der
Regel die Punkte, deren Parameterwerte außerhalb der Kurve liegen entfernt.
v
3
2
1
π
2π u
4. Übungen
Uebung II.1 (Kreis Approximation)
Der Einheitskreis soll durch ein reguläres 6–Eck möglichst gut approximiert werden. Die Punkte sollen dabei nicht zwingend auf dem Einheitskreis liegen. Bestimmen Sie die optimale Lage der sechs Punkte. Wie gross
ist dann der Fehler zwischen Kreis und 6–Eck maximal?
Uebung II.2 (Spirale)
Die Spiralkurve in Abbildung II.3 verläuft mit 10 Umdrehungen vom Startpunkt (1/0) in den Endpunkt (0/0). Bestimmen Sie eine Parameterdarstellung der Kurve.
30
II Kurven und Flächen
Uebung II.3 (Schraubenlinie)
Bestimmen Sie die Bogenlängenparametrisierung der Schraubenlinie aus
Beispiel II.7.
Uebung II.4 (Krümmungskreis einer ebenen Kurve)
Die Parabel
c(t) =
t
t2
geht für den Parameterwert t = 1 durch den Punkt (1/1). Bestimmen Sie
die Tangente im Kurvenpunkt (1/1). Welche Krümmung hat die Kurve
im Kurvenpunkt (1/1)? Bestimmen Sie den Mittelpunkt des Krümmungskreises zu diesem Kurvenpunkt.
Uebung II.5 (Rotationshyperboloid)
Ist das Rotationshyperboloid aus Beispiel II.14 eine abwickelbare Fläche ?
Uebung II.6 (Normalenvektor des Torus)
Bestimmen Sie für den Torus aus Beispiel II.11 die Normalenvektoren.
31
III NURBS
Die meisten CAD–Systeme verwenden Non–Uniform–Rational-Bspline–
Surfaces (NURBS) zur mathematischen Beschreibung von Kurven und
Flächen.
1. Bernsteinpolynome
Die Bernsteinpolynome wurden im Jahre 1911 von dem russischen Mathematiker Sergei Natanowitsch Bernstein verwendet um den Approximationssatz von Weierstraß zu beweisen. Rund 50 Jahre später verwendeten
Paul de Faget de Casteljau bei Citroen und Pierre Bézier bei Renault
unabhängig voneinander die Bernsteinpolynome zum Design von Kurven
und Flächen.
1.1. Definition der Bernsteinpolynome
Bei theoretischer Betrachtung sind Bernsteinpolynome eigentlich gar nicht
so aufregend. Betrachtet man jedoch die vielfältigen industriellen Anwendungen dann ist die Idee Polynome anstatt in der Monomform
1, x, x2 , x3 , . . .
32
III NURBS
in einer auf das Intervall [0, 1] zentrierten Form zu verwenden bahnbrechend. Diese Idee bildet die Grundlagen für das heutige Verständnis von
Freiformkurven und Flächen.
Definition III.1 (Bernsteinpolynome) Die d + 1 Bernsteinpolynome
vom Grad d sind definiert durch
d i
d
Bi (x) =
x (1 − x)d−i , i = 0, 1, 2, . . . , d.
i
Beispiel III.1 (Bernsteinpolynome)
Die beiden Bernsteinpolynome vom Grad d = 1
sind
B01 (x) = 1 − x,
y
1
B11 (x) = x.
Die drei Bernsteinpolynome vom Grad d = 2
sind
B02 (x) = (1 − x)2 ,
1
x
1
x
y
1
B12 (x) = 2x (1 − x) ,
B22 (x) = x2 .
1 Bernsteinpolynome
Die vier Bernsteinpolynome vom Grad d = 3
sind
B03 (x) = (1 − x)3 ,
33
y
1
B13 (x) = 3x (1 − x)2 ,
B23 (x) = 3x2 (1 − x) ,
1
x
B33 (x) = x3 .
Bernsteinpolynome über [0, 1]
Bernsteinpolynom betrachtet man in der Regel nur für x–Werte aus dem
Intervall [0, 1]. In diesem Intervall haben alle Bernsteinpolynome Werte
zwischen 0 und 1.
1.2. Rekursionsformel der Bernsteinpolynome
Eine der Schlüsseleigenschaften der Bernsteinpolynome bildet die Rekursionsformel. Mit ihrer Hilfe werden wir später einen einfachen Algorithmus
zur Berechnung von Werten bei Bézier–Kurven angeben können.
Rekursionsformel der Bernsteinpolynome
Das Bernsteinpolynom Bid (x) vom Grad d lässt sich durch lineare Interpolation von zwei Bernsteinpolynomen vom Grad d − 1 erzeugen
d−1
Bid (x) = (1 − x) · Bid−1 (x) + x · Bi−1
(x).
34
III NURBS
Bei der Rekursionsformel verwendet man die Konvention, dass die Bernsteinpolynome vom Grad d mit Index −1 Null sind,
d
B−1
(x) = 0.
Beispiel III.2 (Rekursionsformel der Bernsteinpolynome)
Laut Definition ist
B13 (x) = 3x(1 − x)2 .
Die Rekursionsformel ergibt
B13 (x) = (1−x)B12 (x)+xB02 (x) = (1−x)(2x(1−x))+x(1−x)2 = 3x(1−x)2 .
1.3. Eigenschaften der Bernsteinpolynome
Endpunkteigenschaft der Bernsteinpolynome
An der Stelle x = 0 haben alle Bernsteinpolynome, ausser B0d (x), den
Wert 0. B0d (x) hat den Wert 1.
An der Stelle x = 1 haben alle Bernsteinpolynome, ausser Bdd (x), den
Wert 0. Bdd (x) hat den Wert 1.
1 Bernsteinpolynome
35
Bernsteinpolynome bilden Zerlegung der 1
Die Bernsteinpolynome bilden eine Zerlegung der 1, d.h. die Summe aller
d + 1 Bernsteinpolynome hat für jeden x–Wert den Wert 1,
B0d (x) + B1d (x) + . . . + Bdd (x) = 1.
d
(x) entsprechen sich, wenn
Die beiden Bernsteinpolynome Bid (x) und Bd−i
man x durch 1 − x ersetzt.
Symmetrie der Bernsteinpolynome
d
(x) sind jeDie korrespondierenden Bernsteinpolynome Bid (x) und Bd−i
1
weils spiegelbildlich zu der Geraden x = 2
1
1
d
d
Bi
+ h = Bd−i
−h .
2
2
Maximum der Bernsteinpolynome
Jedes Bernsteinpolynom Bid (x) hat im Intervall [0, 1] genau ein Maximum
an der Stelle x = di .
36
III NURBS
Bernsteinpolynome bilden Basis der Polynome
Jedes Polynom vom Grad d lässt sich mit Hilfe der d + 1 Bernsteinpolynome Bid (x) vom Grad d darstellen.
Beispiel III.3 (Bernsteinpolynome bilden Basis der Polynome)
Das Polynom vom Grad d = 2
p(x) = 1 + 4x − 7x2
soll mit Hilfe der drei Bernsteinpolynome vom Grad d = 2 dargestellt
werden. Dazu müssen wir die Werte b0 , b1 und b2 aus der Gleichnung
b0 B02 (x) + b1 B12 (x) + b2 B22 (x) = 1 + 4x − 7x2
bestimmen. An der Stelle x = 0 gilt
b0 = 1
und an der Stelle x = 1
b2 = −2.
b1 kann man dann aus der Gleichung
(1 − x)2 + b1 · 2(1 − x)x − 2x2 = 1 + 4x − 7x2
berechenen. Durch Umformen
1 + (2b1 − 2)x + x2 (−1 − 2b1 ) = 1 + 4x − 7x2
ergibt sich
b1 = 3.
1 Bernsteinpolynome
37
1.4. Ableitung der Bernsteinpolynome
Die Berechnung der Ableitung von Bernsteinpolynomen gestaltet sich
nicht schwierig.
Ableitung der Bernsteinpolynome
Die Ableitung eines Bernsteinpolynoms Bid (x) vom Grad d lässt sich als
Differenz von zwei Bernsteinpolynomen vom Grad d − 1 darstellen
d d
d−1
Bi (x) = d Bi−1
(x) − Bid−1 (x) .
dx
Beispiel III.4 (Ableitung der Bernsteinpolynome)
Laut Definition ist
B13 (x) = 3x(1 − x)2
und somit
d 3
B (x) = 3(1 − x)2 − 6x(1 − x).
dx 1
Die Ableitungsformel ergibt
d 3
B1 (x) = 3 B02 (x) − B12 (x)
dx
= 3 (1 − x)2 − 2x(1 − x) .
38
III NURBS
2. Bézier–Kurven
Bézier–Kurven verwenden als Koordinatenfunktionen Linearkombinationen von Bernsteinpolynomen.
2.1. Definition der Bézier–Kurven
Es ist üblich die Vorfaktoren der einzelnen Bernsteinpolynome in sogenannten Kontrollpunktvektoren zusammen zu fassen.
Beispiel III.5 (Koordinatenfunktionen einer Bézier–Kurve)
5 · B02 (t) + 1 · B12 (t) + 4 · B22 (t)
c(t) =
1 · B02 (t) + 2 · B12 (t) + 5 · B22 (t)
5
1
4
2
2
2
+ B2 (t)
,
+ B1 (t)
= B0 (t)
5
1
2
t ∈ [0, 1].
Definition III.2 (Bézier–Kurve) Eine Bézier–Kurve vom Grad d mit
d + 1 Kontrollpunkten
b0 , b1 , b2 , . . . , bd ,
besitzt die Parameterdarstellung
b(t) = B0d (t)b0 + B1d (t)b1 + B2d (t)b2 + . . . + Bdd (t)bd ,
t ∈ [0, 1].
2 Bézier–Kurven
39
2.2. Eigenschaften der Bézier–Kurven
Aus den Eigenschaften der Bernsteinpolynome folgen viele Eigenschaften
von Bézier–Kurven unmittelbar.
Start– und Endpunkt der Bézier–Kurve
Eine Bézier–Kurve startet für t = 0 im ersten Kontrollpunkt b0 und
endet für t = 1 im letzten Kontrollpunkt bd .
Symmetrie der Bézier–Kurve
Vertauscht man bei einer Bézier–Kurve die Reihenfolge der Kontrollpunkte
bd , . . . , b2 , b1 , b0 ,
so ändert sich lediglich die Orientierung der Kurve, die Form der Kurve
bleibt unverändert.
Konvexe Hülle der Bézier–Kurve
Eine Bézier–Kurve verläuft vollkommen innerhalb der konvexen Hülle der
Kontrollpunkte.
Ein Spezialfall der konvexen Hülle Eigenschaft ist die so genannte lineare
Präzision.
40
III NURBS
Lineare Präzision der Bézier–Kurve
Eine Bézier–Kurve, bei der alle Kontrollpunkte auf einer Geraden liegen,
ist Teil dieser Geraden.
Von zentraler Bedeutung für CAD–Systeme ist die so genannte affine
Invarianz.
Affine Invarianz der Bézier–Kurve
Bei einer Bézier–Kurve spielt es keine Rolle, ob man die komplette Kurve
transformiert oder ob man nur die Kontrollpunkte transformiert und
dann die Kurve mit den transformierten Kontrollpunkten betrachtet.
Das bedeutet, dass man zum Verschieben, Rotieren und Skalieren einer
Bézier–Kurve nur die Kontrollpunkte verschieben, rotieren und skalieren
muss.
Umparametrisierung der Bézier–Kurve
Man kann eine Bézier–Kurve so umparametrisieren, dass der neue Parameter u ein beliebiges Intervall [a, b] durchläuft. Dazu verwendet man die
Substitution
t=
u−a
, t ∈ [0, 1],
b−a
u = a + t(b − a), u ∈ [a, b].
2 Bézier–Kurven
Die Bernsteinpolynome Bid (x) haben an der Stelle x =
Wert.
41
i
d
den maximalen
Fast lokale Kontrolle der Bézier–Kurve
Die Veränderung des Kontrollpunktes bi beeinflusst zwar die gesamte
Bézier–Kurve. Allerdings wirkt sich die Veränderung am Parameterwert
t = di am meisten aus.
2.3. Der de Casteljau Algorithmus
De Casteljau Algorithmus
Den Wert einer Bézier–Kurve vom
Grad d an einem Parameterwert t
kann man in d Schritten mit Hilfe
des de Casteljau Algorithmus berechnen. Die neuen Kontrollpunkte teilen
die Kanten des alten Kontrollpolygons im Verhältnis (1 − t) zu t. Nach
jedem Unterteilungsschritt verringert
sich die Anzahl der Kontrollpunkte
um 1. Der letzte Kontrollpunkt entspricht dem Wert der Bézier–Kurve.
42
III NURBS
Subdivision einer Bézier–Kurve
Man kann den de Casteljau Algorithmus auch dazu verwenden eine
Bézier–Kurve in zwei Teilkurven aufzuteilen. Die Kontrollpunkte der beiden neuen Teilkurven entstehen aus
den Hilspunkten des de Casteljau Algorithmus.
2.4. Ableitung der Bézier–Kurven
Ableitung einer Bézier–Kurve
Die Ableitung einer Bézier–Kurve vom Grad d ist eine Bézier–Kurve vom
Grad d − 1. Die Kontrollpunkte ∆bi der Ableitung kann man direkt aus
den Kontrollpunkten der Kurve berechenen
∆bi = d (bi+1 − bi ) .
Beispiel III.6 (Ableitung einer Bézier–Kurve)
Die erste Ableitung der Bézier–Kurve vom Grad 2
5
1
4
2
2
2
b(t) = B0 (t)
+ B1 (t)
+ B2 (t)
,
1
2
5
t ∈ [0, 1]
2 Bézier–Kurven
43
ist die Bézier–Kurve vom Grad 1
−4
3
0
1
1
b (t) = B0 (t)
+ B1 (t)
,
1
3
t ∈ [0, 1].
2.5. Rationale Bézier–Kurven
Definition III.3 (Rationale Bézier–Kurve) Eine rationale Bézier–
Kurve vom Grad d mit d + 1 Kontrollpunkten
b0 , b1 , b2 , . . . , bd ,
und d + 1 Gewichten
ω0 , ω1 , ω2 , . . . , ωd ,
besitzt für t ∈ [0, 1] die Parameterdarstellung
d
X
b(t) =
ωi Bid (t)bi
i=0
d
X
.
ωi Bid (t)
i=0
Beispiel III.7 (Rationale Bézier–Kurve)
Die rationale Bézier–Kurve mit den Kontrollpunkten
−1
−1
1
1
b0 =
, b1 =
, b2 =
, b3 =
,
0
1
1
0
44
III NURBS
und den Gewichten
1
1
ω0 = 1, ω1 = , ω2 = , ω3 = 1,
3
3
ist eine rationale Bézier–Kurve vom Grad 3, die einen Halbkreis darstellt.
3 B–Splines
45
3. B–Splines
Mit Bézier–Kurven kann man einfache gekrümmte Kurven sehr gut modellieren. Es gibt jedoch eine Reihe von Tatsachen, die dazu geführt haben,
dass sich in CAD–Systemen andere mathematische Beschreibungen für
Kurven und Flächen etabliert haben.
Ein wesentlicher Nachteil besteht darin, dass man Bézier–Kurven nicht
lokal kontrollieren kann. Eine Änderung eines einzigen Kontrollpunktes
verändert den Verlauf der gesamten Kurve.
Zur Modellierung von komplexen Kurven muss man Bernsteinpolynome
von höherem Grad verwenden. Bernsteinpolynome von höherem Grad haben jedoch gravierende Nachteile. Der Verlauf der Bézier–Kurve unterscheidet sich um so mehr vom Verlauf des Kontrollpolygons je höher
der Grad der Bernsteinpolynome ist. Bernsteinpolynome von höherem
Grad sind anfälliger bezüglich Rundungsfehler. Mathematisch formuliert
bezeichnet man das als numerische Instabilität. Ein weiterer Nachteil ist,
dass Bernsteinpolynome bei der Interpolation zum Überschwingen neigen.
Den Aspekt der Interpolation wollen wir hier jedoch nicht betrachten.
In modernen CAD–Systemen verwendet man deshalb sogenannte B–Splines
zur mathematischen Beschreibung von Freiformkurven und Freiformflächen. Der Begriff Spline stammt ursprünglich aus dem Schiffsbau. Eine
Straklatten (englisch spline) die an einzelnen Punkten durch Nägel fixiert wird ist bestrebt die durch Biegung erzeugte innere Spannung zu
minimieren.
In der Mathematik verwendet man den Begriff Spline immer dann, wenn
einfache Funktionen unter Einhaltung bestimmter Bedingungen zusammengesetzt werden. In unserem Fall sind die einfachen Funktionen Polynome. In der Regel beschränkt man sich in CAD–Systeme auf Polynome
mit niedrigen Grad d ≤ 5.
46
III NURBS
3.1. Lineare Splines
Die meisten grundlegenden Eigenschaften von Splines kann man sich bereits an linearen Splines, d.h. Splines, die aus Polynomen vom Grad d = 1
zusammengesetzt sind klar machen.
Bei einer linearen Spline–Funktion handelt es sich lediglich um einen Polygonzug.
Definition III.4 (Lineare Spline–Funktion) Den Polygonzug, der die
n Punkte mit den Koordinaten
(u0 , f0 ), (u1 , f1 ), (u2 , f2 ), . . . , (un−1 , fn−1 )
verbindet, bezeichnet man als lineare Spline–Funktion. Dabei müssen die
u–Werte aufsteigend sortiert sein
u0 < u1 < u2 < . . . < un−1 .
Die Funktion ist nur im Bereich zwischen u0 und un−1 definiert.
Wir wollen uns zunächst mit der Frage beschäftigen, wie man einen Polygonzug als Funktion beschreiben kann.
Beispiel III.8 (Linearer Spline)
(1, 4), (3, 1), (5, 1), (8, 3), (10, 2)
3 B–Splines
47
5
Y
4
3
2
1
-1
1
2
3
4
5
6
7
8
9
10
11
X
-1
Abbildung III.1.: Linearer Spline.
Abbildung III.8 zeigt einen Polygonzug. Man kann diesen Polygonzug als
abschnittsweise Funktion darstellen.
Beispiel III.9 (Linearer Spline als abschnittsweise Funktion)

1−4


(x − 1)
4+


3
−
1




1−1


(x − 3)
 1+
5−3
f (x) =
3−1



1+
(x − 5)


8−5





 3 + 2 − 3 (x − 8)
10 − 8
für
x ∈ [1; 3]
für
x ∈ [3; 5]
für
x ∈ [5; 8]
für
x ∈ [8; 10]
Die Grundidee bei Splines besteht darin, die Funktion mit Hilfe geeigneter
Basisfunktionen darzustellen.
48
III NURBS
Beispiel III.10 (Basis eines linearen Spline)
2
Y
1
-1
N10(x)
1
N11(x)
2
3
N12(x)
4
5
N13(x)
6
7
8
N14(x)
9
10
11
X
-1
Abbildung III.2.: Basis eines linearen Spline.
f (x) = 4 · N01 (x) + 1 · N11 (x) + 1 · N21 (x) + 3 · N31 (x) + 2 · N41 (x).
Die einzelnen Basisfunktionen hängen nun nicht mehr von den Funktionswerten, sondern nur noch von den u-Werten ab. Für diese Basisfunktionen hat sich die Bezeichnung B–Spline etabliert. Bereits 1949 verwendete
Schoenberg diesen Begriff, wobei die Abkürzung „B“ in B–Spline für „basis“ steht.
B–Spline Notation
Für B–Splines verwendet man üblicherweise eine Schreibweise mit zwei
Indices
d . . . Grad der Polynome,
Nid (x),
i . . . Laufindex,
Der untere Index i ist ein Laufindex, der alle n B–Splines von 0 bis n − 1
durchläuft. Der obere Index d spezifiziert den Grad der Polynome.
3 B–Splines
49
Um die Unsymmetrie der ersten und der letzten B–Splines zu beseitigen,
fügt man künstlich noch zwei u–Werte hinzu.
Beispiel III.11 (Basisfunktionen am Rand)
2
Y
1
-1
N10(x)
1
N11(x)
2
3
N12(x)
4
5
N13(x)
6
7
8
N14(x)
9
10
11
X
-1
Abbildung III.3.: Erweiterung der Basisfunktionen am Rand.
Die beiden zusätzlichen u–Werte am Rand führen in der Praxis oft zur
Verwirrung. Im Prinzip können die beiden Werte unter den Einschränkungen
u−1 ≤ u0 und un−1 ≤ un
beliebig gewählt werden. Da der Spline ohnehin nur zwischen u0 und un−1
betrachtet wird, haben die Werte von u0 und un keinen Einfluss auf die
Spline–Funktion. Eine in vielen CAD–Systemen und CAD–Datenformaten
gängige Wahl ist u−1 = u0 und un = un−1 .
50
III NURBS
Definition III.5 (Lineare B–Splines) Zu n + 2 Knotenwerten
u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un ,
von denen je maximal zwei aufeinanderfolgende Werte gleich sind, definiert man n lineare B–Splines vom Grad d = 1 durch

0
für x < ui−1







x − ui−1


für ui−1 ≤ x < ui
ui − ui−1
i = 0, 1, 2, . . . , n − 1.
Ni1 (x) =

u
−
x
i+1


für ui ≤ x < ui+1


ui+1 − ui




0
für x > ui+1
Bei der obigen Definition sind gleiche Knoten explizit zugelassen. Sind
zwei aufeinanderfolgende u–Werte gleich so spricht man von einem doppelten Knoten oder einem Knoten der Vielfachheit 2.
Bei Knoten mit Vielfachheit 2 ist allerdings zu beachten, dass in der
Formel bei gleichen Knotenwerten durch Null geteilt wird. Mathematisch
kann man diese Vorgehensweise dadurch rechtfertigen, dass in diesem Fall
das entsprechende Definitionsintervall leer ist. Bei der Implementierung in
einem CAD–System sind solche Feinheiten zu berücksichtigen.
Beispiel III.12 (Lineare B–Splines)
Die vier Knotenwerte
u−1 = 0, u0 = 0, u1 = 1, u2 = 1,
3 B–Splines
51
erzeugen zwei Basisfunktionen

0







x−0


0−0
N01 (x) =

1−x





1−0



0
für
x<0
für
0≤x<0
für
0≤x<1
für
x>1
für
x<0
für
0≤x<1
für
1≤x<1
für
x>1
und

0







x−0


1−0
N11 (x) =

1
−x





0−0



0
Für Werte zwischen 0 und 1 stimmen diese Basisfunktionen mit den Bernsteinpolynomen vom Grad 1 überein
N01 (x) = 1 − x = B01 (x), und N11 (x) = x = B11 (x).
Die Bernsteinpolynome sind also als Spezialfall in den B–Splines enthalten.
52
III NURBS
Lineare Spline–Funktion
Eine lineare Spline–Funktion durch die n Punkte mit den Koordinaten
(u0 , f0 ), (u1 , f1 ), (u2 , f2 ), . . . , (un−1 , fn−1 )
kann man als Summe von n linearen B–Splines
f (x) =
n−1
X
i=0
fi Ni1 (x),
x ∈ [u0 ; un−1 ],
zu den n + 2 Knotenwerten
u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un ,
darstellen. Die Knotenwerte am Rand können unter den Einschränkungen
u−1 ≤ u0 und un−1 ≤ un
beliebig gewählt werden. Die Spline–Funktion betrachten wir nur für
x–Werte zwischen u0 und un−1 .
3.2. Definition der B–Splines
B–Splines vom Grad d vereinigen die Grundidee der Bernsteinpolynome
und der linearen B–Splines. Das Ziel ist es, Basisfunktionen zu definieren,
mit denen Polynome vom Grad d stückweise zusammengesetzt werden.
Mit Hilfe von B–Splines gelingt es Polynome so zusammenzusetzen, dass
die Glattheit an den Übergängen zwischen den einzelnen Polynomstücken
kontrolliert werden kann.
3 B–Splines
53
Die Grundlagen der B–Splines legte Schoenberg bereits 1949. Er definierte
B–Splines vom Grad d dadurch, dass er zwei benachbarte B–Splines vom
Grad d − 1 faltete.
Definition III.6 (B–Splines) Ein B–Spline vom Grad d entsteht dadurch, dass man zwei benachbarte B–Splines vom Grad d − 1 mit einander faltet. Ausgehend von den linearen B–Splines kann man so rekursiv
B–Splines vom Grad d = 2, d = 3, . . ., erzeugen. Bei fester Knotenanzahl
nimmt die Anzahl der B–Splines mit wachsendem Grad d jeweils um 1
ab, d.h. es besteht folgende Konsistenzbedingung
Anzahl der Knoten = Anzahl der Basisfunktionen + Grad + 1.
Beispiel III.13 (B–Spline Faltung)
Die mathematischen Einzelheiten der Faltung können wir uns an dieser
Stelle sparen, da die Berechnung der B–Splines mit Hilfe von Rekursionsformeln einfacher durchgeführt werden kann.
3.3. Rekursionsformel der B–Splines
De Boor, Cox und Mansfield haben erkannt, dass sich die B–Splines durch
Rekursionsformeln berechnen lassen.
54
III NURBS
u
−1
N10(t)
N11(t)
N12(t)
u
u
u
u
u1
u2
u0
u1
0
1
2
N0(t)
u−2
u−1
2
3
2
N1(t)
u0
3
N0(t)
u−3
u−2
u−1
Abbildung III.4.: B–Splines entstehen durch Faltung.
Definition III.7 (Rekursionsformel der B–Splines) Ein B–Spline
vom Grad d entsteht dadurch, dass man zwei benachbarte B–Splines
vom Grad d − 1 mit Hilfe der Formel
Nid (x) =
x − ui−d d−1
ui+1 − x
d−1
Ni (x) +
Ni+1
(x)
ui − ui−d
ui+1 − ui−d+1
linear interpoliert. Die Formel gilt für i = 0, 1, 2, . . . , n − 1, dabei verwenden wir für die Knoten die Nummerierung
u−d ≤ u−d+1 ≤ . . . ≤ u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un .
Der i–te B–Spline Nid (x) ist außerhalb des Intervalls [ui−d , ui+1 ] Null.
3 B–Splines
55
In der Literatur werden unterschiedliche Notationen für die Rekursionsformel verwendet. Bei der Implementierung in einer speziellen Programmiersprache (FORTRAN, C, MATLAB, . . . ) kann es günstig sein, die
Nummerierung der Knoten und der Basisfunktionen entsprechend anzupassen.
Wir haben in III.5 die linearen B–Splines vom Grad d = 1 bereits definiert
und können unsere Rekursion damit starten. In der Literatur verwendet
man jedoch in der Regel die B–Splines vom Grad 0 als Rekursionsanfang.
Definition III.8 (Konstante B–Splines) Zu n Knotenwerten
u0 < u1 < u2 < . . . ≤ un−1 ,
definiert man n konstante

0 für




1 für
Ni0 (x) =




0 für
B–Splines vom Grad d = 0 durch
x < ui
ui ≤ x < ui+1
i = 0, 1, 2, . . . , n − 1.
x > ui+1
Beispiel III.14 (B–Spline Rekursion)
Die rekursive Berechnung der B–Splines vom Grad d = 1 zu den Knoten
u−1 = 0, u0 = 1, u1 = 2, u2 = 3,
56
III NURBS
N00(t)
u0
N01(t)
u1
u2
N1(t)
N1(t)
u0
u1
0
u−1
N02(t)
u3
1
u2
Abbildung III.5.: B–Splines entstehen durch Rekursion.
ergibt
N01 (x) =
x−0 0
2−x 0
N0 (x) +
N (x)
1−0
2−1 1
N11 (x) =
x−1 0
3−x 0
N1 (x) +
N (x).
2−1
3−2 2
und
Knotenvielfachheit
Sind m aufeinanderfolgende u–Werte gleich so spricht man von einem
Knoten der Vielfachheit m. Bei einem B–Spline vom Grad d lassen wir
nur Knoten mit einer maximalen Vielfachheit d + 1 zu
Knotenvielfachheit ≤ Grad + 1.
3 B–Splines
57
Manche CAD–Systeme erlauben für innere Knoten höchstens die Vielfachheit d.
Uniforme Knoten
Von uniformen Knoten spricht man dann, wenn alle Knotenabstände
gleich groß sind, d.h.
u−d+1 − u−d = . . . = u0 − u−1 = u1 − u0 = . . . = un − un−1 .
3.4. Eigenschaften der B–Splines
B–Splines besitzen ähnliche Eigenschaften wie die Bernsteinpolynome.
B–Splines und Bernsteinpolynome
Bereits in Beispiel III.12 haben wir gesehen, dass die Bernsteinpolynome
vom Grad 1 spezielle lineare B–Splines sind. Dieser Sachverhalt bleibt
auch für höheren Grad d gültig.
58
III NURBS
B–Splines und Bernsteinpolynome
Die B–Splines vom Grad d zu dem speziellen Knotenvektor der genau
d + 1 mal den Knoten 0 und d + 1 mal den Knoten 1 enthält,
0, 0, . . . , 0, 0, 1, 1, . . . , 1, 1,
{z
}|
{z
}
|
(d+1)–fach
(d+1)–fach
sind die Bernsteinpolynome vom Grad d.
Differenzierbarkeit
Zwischen zwei Knoten sind B–Splines Polynome vom Grad d und somit
beliebig oft stetig differenzierbar.
An den Knoten werden jedoch unterschiedliche Polynome zusammengesetzt. Dadurch können Unstetigkeiten der Funktionswerte (Sprünge), Unstetigkeiten der ersten Ableitungen (Knicke) oder Unstetigkeiten in höheren Ableitungen (Krümmung, Torsion, . . . ) entstehen.
Bei B–Splines hängt die Differenzierbarkeit an einem Knoten von der
Knotenvielfachheit ab. B–Splines vom Grad d sind an einem einfachen
Knoten mindestens d − 1 mal stetig differnzierbar. Mehrfache Knoten
reduzieren jedoch die Glattheit der B–Splines.
Glattheit der B–Splines
Hat ein Knoten die Vielfachheit m, so sind die B–Splines vom Grad d an
diesem Knoten d − m mal stetig differenzierbar.
3 B–Splines
59
Ein B–Spline vom Grad 3, bei dem alle inneren Knoten einfach sind, ist
also zweimal stetig differnzierbar.
Beispiel III.15 (Glattheit der B–Splines)
N30(t)
N34(t)
N31(t) N3(t) N33(t)
2
u−3
u−2u−1u0
u1
N35(t)
u2u3u4
N36(t)
u5
N37(t)
u6
u7
u8
Abbildung III.6.: Glattheit der B–Splines.
Bei den Knotenwerten
−1, 0, 0, 0, 1, 2, 2, 2, 3, 4, 5, 6.
kommt der Knotenwert u2 = u3 = u4 = 2 drei mal vor. Durch den
Grad d = 3 sind alle B–Splines an der Stelle zwar noch stetig, aber die
B–Splines N33 (t), N43 (t) und N53 (t) sind an der Stelle t = 2 einen Knick,
sind also nicht differenzierbar.
Knoten mit Vielfachheit d
60
III NURBS
Knotenvielfachheit d
Hat der Knoten uk die Vielfachheit d, d.h. gilt
uk = uk+1 = . . . = uk+d−1 ,
dann haben alle anderen B–Splines außer Nkd (x) an der Stelle uk den
Wert 0. Nkd (x) hat an dem d–fachen Knoten den Wert 1, d.h.
Nkd (uk ) = 1.
Zerlegung der 1
Genau wie die Bernsteinpolynome bilden auch die B–Splines eine Zerlegung der 1.
B–Splines bilden Zerlegung der 1
Die Summe aller B–Splines vom Grad d bilden im Intervall [u0 ; un−d ] eine
Zerlegung der 1, d.h.
d
d
(x) + Nn−1
(x) = 1,
N0d (x) + N1d (x) + N2d (x) + . . . + Nn−2
für alle x ∈ [u0 ; un−d ].
Die Zerlegung der 1 gilt aber nicht auf dem gesamten Knotenvektor von
u−d bis un sondern nur auf dem Teilbereich zwischen u0 und un−d .
4 B–Spline–Kurven
61
4. B–Spline–Kurven
Genau wie wir mit Hilfe von Bernsteinpolynomen Bézier–Kurven erzeugt
haben, werden wir mit Hilfe von B–Splines B–Spline–Kurven definieren.
4.1. Definition der B–Spline–Kurven
Definition III.9 (B–Spline–Kurve) Eine B–Spline–Kurve vom Grad d
mit n Kontrollpunkten
a0 , a1 , a2 , . . . , an−1 ,
besitzt die Parameterdarstellung
d
a(t) = N0d (t)a0 + N1d (t)a1 + N2d (t)a2 + . . . + Nn−1
(t)an−1 .
Dabei werden die n B–Splines durch den Knotenvektor
u−d ≤ u−d+1 ≤ . . . ≤ u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un ,
definiert und der Kurvenparameter t durchläuft das Intervall [u0 ; un−d ].
Zur Definition einer B–Spline–Kurve müssen wir zunächst den Grad d
festlegen. Oft arbeitet man in CAD–Systemen mit den Graden d = 1,
d = 2, d = 3 und d = 5.
Der Knotenvektor legt dann die B–Splines und somit die Anzahl der Kurvensegmente und die Glattheit, mit der die Kurvensegmente zusammen-
62
III NURBS
stoßen fest. Sinnvollerweise benötigt man bei einer Spline–Kurve vom
Grad d mindestens 2d + 2 Knotenwerte.
Die Kontrollpunkte bestimmen den Verlauf der B–Spline–Kurve. Oft werden die Kontrollpunkte von B–Spline–Kurven auch als de Boor Punkte
bezeichnet.
Dass der Kurvenparameter nicht alle Werte des Knotenvektors durchläuft,
sondern nur Werte im Intervall [u0 ; un−d ] verwendet werden, hängt mit
der Zerlegung der 1 zusammen. Diese Eigenschaft ist nur auf dem Intervall
[u0 ; un−d ] erfüllt.
4 B–Spline–Kurven
63
Beispiel III.16 (B–Spline–Kurve)
a1
a2
a5
c(1)
a6
c(3)
a7
c(2)
a4
a c(0)
a
0
3
N30(t)
N34(t)
N31(t) N3(t) N33(t)
2
u−3
u−2u−1u0
u1
N35(t)
u2u3u4
N36(t)
u5
N37(t)
u6
u7
u8
Abbildung III.7.: B–Spline Kurve.
Die abgebildete B–Spline–Kurve hat den Grad d = 3 und die Knoten
−1, 0, 0, 0, 1, 2, 2, 2, 3, 4, 5, 6.
Der Parameterbereich der Kurve beschränkt sich auf das Intervall [0, 3].
Auf Grund des dreifachen Knotens am Anfang startet die Kurve für t = 0
direkt im Kontrollpunkt a0 . Der Endpunkt der Kurve beim Parameterwert
64
III NURBS
t = 3 wird von den Kontrollpunkten a5 , a6 und a7 beeinflusst. Durch den
dreifachen Knoten an der Stelle t = 2 liegt der Kontrollpunkt a4 auf der
Kurve, allerdings entsteht dadurch an dieser Stelle auch ein Knick.
4.2. Eigenschaften der B–Spline–Kurven
B–Spline–Kurven müssen nicht unbedingt im ersten Kontrollpunkt starten und im letzten Kontrollpunkt enden. Diese Eigenschaft verwendet man
insbesondere bei geschlossenen B–Spline–Kurven, wie etwa Kreisen. Allerdings führt das in der Praxis oft zu Verwirrungen. Das Problem kann man
dadurch umgehen, dass man einen Knotenvektor verwendet, bei dem der
erste und der letzte Knoten eine entsprechende Vielfachheit besitzen.
Start– und Endpunkt der B–Spline–Kurve
Start– und Endpunkt der B–Spline–Kurve
Eine B–Spline–Kurve startet für t = u0 im ersten Kontrollpunkt a0 , falls
der Knoten u0 mindestens die Vielfachheit d hat. Eine B–Spline–Kurve
endet für t = un−d im letzten Kontrollpunkt an−1 , falls der Knoten un−d
mindestens die Vielfachheit d hat.
Lokale Kontrolle
Der i–te B–Spline Nid (x) ist außerhalb des Intervalls [ui−d , ui+1 ] Null.
Dadurch wirkt sich eine Veränderung des i–ten Kontrollpunktes ai nur auf
Kurvenpunkte aus, deren Parameter innerhalb des Intervalls [ui−d , ui+1 ]
liegen.
4 B–Spline–Kurven
65
Lokale Kontrolle der B–Spline–Kurve
Die Veränderung des Kontrollpunktes ai beeinflusst die B–Spline–Kurve
nur für Parameterwerte im Intervall [ui−d , ui+1 ]. Außerhalb dieses
Intervalls bleibt die Kurve unverändert.
66
III NURBS
Beispiel III.17 (B–Spline–Kurve)
a1
a2
a5
c(1)
a6
c(3)
a0c(0)
a
7
c(2)
a4
a c(0)
a
0
3
N30(t)
N34(t)
N31(t) N3(t) N33(t)
2
u−3
u−2u−1u0
u1
N35(t)
u2u3u4
N36(t)
u5
N37(t)
u6
u7
u8
Abbildung III.8.: Lokale Kontrolle der B–Spline Kurve.
Die Veränderung des Kontrollpunktes a0 wirk sich nur auf den Teil der
Kurve aus, der zu Parameterwerten zwischen 0 und 1 gehört. Der Rest
der Kurve bleibt unverändert.
4 B–Spline–Kurven
67
Konvexe Hülle
Konvexe Hülle der B–Spline–Kurve
Eine B–Spline–Kurve verläuft vollkommen innerhalb der konvexen Hülle
der Kontrollpunkte.
Auf Grund der lokalen Kontrolle kann man den Verlauf einer B–Spline–
Kurve anhand der Kontrollpunkte noch wesentlich genauer spezifizieren.
Details dazu findet man in der Literatur.
4.3. Der Knoten–Einfügen–Algorithmus
Bézier–Kurven konnten wir mit Hilfe des De Casteljau–Algorithmus auswerten und unterteilen. Die gleichen Aufgaben erfüllt der Knoten–Einfügen–
Algorithmus für B–Spline–Kurven.
Das Ziel dieses Algorithmus ist es, einen zusätzlichen Knoten u in den
Knotenvektor einzufügen, und dabei die Kontrollpunkte so zu verändern,
dass der ursprüngliche Knotenvektor mit den ursprünglichen Kontrollpunkten und der neue Knotenvektor mit den neuen Kontrollpunkten exakt die
selbe Kurve darstellen. Mit anderen Worten, die Darstellung der Kurve
ändert sich, die Kurve selbst bleibt jedoch unverändert.
Falls alle Knoten die Vielfachheit d oder d + 1 haben, entspricht der
Knoten–Einfügen–Algorithmus dem De Casteljau–Algorithmus.
68
III NURBS
Knoten–Einfügen–Algorithmus
Der Knoten u soll in eine B–Spline–Kurve vom Grad d mit n Kontrollpunkten
a0 , a1 , a2 , . . . , an−1
und dem Knotenvektor
u−d ≤ u−d+1 ≤ . . . ≤ u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un
eingefügt werden.
(1) Man bestimmt alle Knotenintervalle mit d+1 Knoten, die den neuen
Knoten u enthalten
ui < u < ui+d .
(2) Für jeden in Schritt (1) bestimmten Index i bestimmt man ein
Gewicht
u − ui
ωi =
.
ui+d − ui
(3) Für jeden in Schritt (1) bestimmten Index i wird der Kontrollpunkt
ai+d = (1 − ωi )ai+d−1 + ωi ai+d
neu bestimmt.
(4) Man fügt u in den Knotenvektor ein.
Durch den zusätzlichen Knoten erhalten wir eine zusätzliche Basisfunktion. Somit erhalten wir beim Einfügen eines Knotens auch einen zusätzlichen Kontrollpunkt. Bei allen Kontrollpunkten, die hinter dem neu
eingefügten Kontrollpunkt liegen, erhöht sich dadurch der Index um 1.
4 B–Spline–Kurven
69
Beispiel III.18 (Knoten einfügen)
a
a
1
a
2
2
a5
a
6
a3
a
6
a7
a
1
a8a7
a5
a4
a0a0
a4a3
N30(t)
N34(t)
N31(t) N3(t) N33(t)
2
u−3
u−2u−1u0
u1
N30(t)
N35(t)
u2u3u4
u−2u−1u0 u1
u5
N35(t)
3
N31(t)N2(t) N3(t) N3(t)
3
4
u−3
N36(t)
u2
N36(t)
u3u4u5
N37(t)
u6
N37(t)
u6
u7
u8
u8
u9
N38(t)
u7
Abbildung III.9.: Knoten einfügen bei einer B–Spline Kurve.
70
III NURBS
In der Mitte zwischen u0 und u1 soll ein neuer Knoten u eingefügt werden.
(1) Es gibt drei Knotenintervalle mit d + 1 Knoten, die den neuen Knoten u enthalten
i = −2 :
i = −1 :
i=0 :
u−2 < u < u1 ,
u−1 < u < u2 ,
u0 < u < u3 .
(2) Die Gewichte sind
u − u−2
=
u1 − u−2
u − u−1
=
=
u2 − u−1
u − u0
=
=
u3 − u0
i = −2 :
ω−2 =
1
,
2
i = −1 :
ω−1
1
,
4
i=0
ω0
:
1
.
4
(3) Die Kontrollpunkt a1 , a2 und a3 müssen neu berechnet werden
i = −2 :
i = −1 :
i=0
:
1
a1 = a0 +
2
3
a2 = a1 +
4
3
a3 = a2 +
4
1
a1 ,
2
1
a2 ,
4
1
a3 .
4
(4) Man fügt u in den Knotenvektor ein.
Neben dem Knoten–Einfügen–Algorithmus gibt es noch verschiedene Varianten von Oslo–Algorithmen, mit deren Hilfe simultanes Knoteneinfügen
performant durchgeführt werden kann.
Mit Hilfe des Knoten–Einfügen–Algorithmus kann man sehr einfach die
Kurve an einem beliebigen Parameterwert auserten.
4 B–Spline–Kurven
71
De–Boor–Algorithmus
Der de–Boor–Algorithmus berechnet den Wert der B–Spline–Kurve an
der Stelle t dadurch, dass der Knoten t so oft eingefügt wird, bis er
die Vielfachheit d besitzt. Der Wert der Kurve entspricht dann dem
entsprechenden Kontrollpunkt.
Man kann den Knoten–Einfügen–Algorithmus auch dazu verwenden, eine
B–Spline–Kurve in Segmente aus Bézier–Kurven zu zerlegen. Dazu werden Knoten so lange eingefügt, bis alle Knoten die Vielfachheit d bzw.
d + 1 haben.
72
III NURBS
4.4. Rationale B–Spline–Kurven
Definition III.10 (Rationale B–Spline–Kurve) Eine rationale B–
Spline–Kurve vom Grad d mit n Kontrollpunkten
a0 , a1 , a2 , . . . , an−1 ,
und n Gewichten
ω0 , ω1 , ω2 , . . . , ωn ,
besitzt für t ∈ [0, 1] die Parameterdarstellung
n−1
X
a(t) =
ωi Nid (t)ai
i=0
n−1
X
.
ωi Nid (t)
i=0
Dabei werden die n B–Splines durch den Knotenvektor
u−d ≤ u−d+1 ≤ . . . ≤ u−1 ≤ u0 ≤ u1 ≤ u2 ≤ . . . ≤ un−1 ≤ un ,
definiert und der Kurvenparameter t durchläuft das Intervall [u0 ; un−d ].
5 Flächen
73
5. Flächen
5.1. Tensorproduktflächen
In Abschnitt 3.2 haben wir Regelflächen als Verbindungsflächen zweier
Kurven c0 (u) und c1 (u) durch Geradenstücke definiert. Die beiden Kurven können dabei beliebig gewählt werden, allerdings müssen sie über dem
selben Parameterintervall I1 parametrisiert sein. Mit Hilfe der Bernsteinpolynome vom Grad 1 lassen sich solche Flächen durch
S(u, v) = B01 (v) · c0 (u) + B11 (v) · c1 (u)
1
X
=
Bj1 (v) · cj (u), u ∈ I1 , v ∈ [0; 1],
j=0
darstellen. Wenn wir für die beiden Kurven nun Bézier–Kurven vom Grad
d verwenden,
c0 (u) =
d
X
Bid (u)bi0 ,
c1 (u) =
i=0
d
X
Bid (u)bi1 ,
i=0
u ∈ [0, ; ],
dann wird die Fläche komplett durch die Kontrollpunkte und die Bernsteinpolynome beschrieben
S(u, v) =
1
X
j=0
Bj1 (v)
·
d
X
i=0
Bid (u)bij ,
u, v ∈ [0; 1].
Bisher haben wir für den Parameter v nur lineare Veränderungen von 0
nach 1 betrachtet. Das gesamte Konzept lässt sich auf beliebige Kurven
im Parameter v und sogar auf beliebige Basisfunktionen erweitern.
74
III NURBS
Definition III.11 (Tensorproduktfläche) Eine Tensorproduktfläche
S(u, v) entsteht aus einer Rechteckstruktur von n · m Kontrollpunkten
b0,0
b1,0
..
.
b0,1
b1,1
..
.
...
...
..
.
b0,m−1
b1,m−1
..
.
bn−1,0 bn−1,1 . . . bn−1,m−1
n Basisfunktionen in u
B0 (u), B1 (u), . . . Bn−1 (u)
und m Basisfunktionen in v
B0 (v), B1 (v), . . . Bm−1 (v).
Jeder Kontrollpunkt bij wird mit den entsprechenden Basisfunktionen
Bi (u) und Bj (v) multipliziert und summiert
S(u, v) =
n−1 m−1
X
X
Bi (u)Bj (v)bij .
i=0 j=0
Die geometrische Form einer Tensorproduktfläche wird im wesentlichen
durch die Kontrollpunkte bestimmt. Die Eigenschaften der Tensorproduktfläche hängen von den gewählten Basisfunktionen ab. Wir werden als
Basisfunktionen Bernsteinpolynome und B–Splines betrachten.
5 Flächen
75
Beispiel III.19 (Bilineare Bézierfläche)
Das einfachste Beispiel einer Tensorproduktfläche ist eine Fläche, bei der
zwei Geradenstücke zu einer Fläche verbunden werden.
Die Bézier–Kurve
c0 (u) = B01 (u)b00 + B11 (u)b10
vom Grad 1 verbindet die beiden
Kontrollpunkte b00 und b10 durch ein
Geradenstück, analog verbindet die
zweite Bézier–Kurve
c1 (u) = B01 (u)b01 + B11 (u)b11
die beiden Kontrollpunkte b01 und
b11 . Beide Kurven sind über dem Parameterintervall u ∈ [0; 1] definiert.
Die bilineare Fläche mit den Bézier–Kontrollpunkten b00 , b01 , b10 und
b11 besitzt die Parameterdarstellung
B01 (u)B01 (v)·b00 +B01 (u)B11 (v)·b01 +B11 (u)B01 (v)·b10 +B11 (u)B11 (v)·b11 .
Dabei durchlaufen die Parameter den Definitionsbereich
u ∈ [0; 1], v ∈ [0; 1].
76
III NURBS
5.2. Bézier–Flächen
Definition III.12 (Bézier–Fläche) Eine Bézier–Fläche ist eine Tensorproduktfläche, bei der die Basisfunktionen Bernsteinpolynome sind
S(u, v) =
d1 X
d2
X
i=0 j=0
Bid1 (u)Bjd2 (v)bij ,
u, v ∈ [0; 1].
Der Grad in u und der Grad in v kann dabei unterschiedlich sein. Eine
Bézier–Fläche mit Grad d1 in u und Grad d2 in v besitzt ein Netz mit
(d1 + 1) · (d2 + 1) Kontrollpunkten.
5 Flächen
77
Beispiel III.20 (Bézierfläche vom Grad d1 = 2, d2 = 1)
Die abgebildete Bézierfläche hat den Grad d1 = 2 in u und den Grad
d2 = 1 in v. Die Kontrollpunkte haben die Koordinaten
 
 
 
0
1
2
b00 =  0  , b10 =  0  , b20 =  0  ,
1
2
1

b01

 
 
0
1
2





1 , b11 =
1 , b21 =
1 .
=
1
2
1
78
III NURBS
Beispiel III.21 (Bézierfläche vom Grad d1 = 2, d2 = 2)
Die abgebildete Bézierfläche hat den Grad d1 = 2 in u und den Grad
d2 = 2 in v. Die Kontrollpunkte haben die Koordinaten
 
 
 
0
1
2
b00 =  0  , b10 =  0  , b20 =  0  ,
1
2
1

b01

 
 
0
1
2





1 , b11 =
1 , b21 =
1 ,
=
1
2
1

b02

 
 
0
1
2
=  2  , b12 =  2  , b22 =  2  .
1
2
1
5 Flächen
79
Beispiel III.22 (Bézierfläche vom Grad d1 = 3, d2 = 3)
Die abgebildete Bézierfläche hat den Grad d1 = 3 in u und den Grad
d2 = 3 in v. Die Kontrollpunkte haben die Koordinaten
 
 
 
 
0
1
2
3







0 , b10 =
0 , b20 =
0 , b30 =
0 ,
b00 =
1
2
2
1

b01

 
 
 
0
1
2
3







1 , b11 =
1 , b21 =
1 , b31 =
1 ,
=
2
3
3
2

b02

 
 
 
0
1
2
3







2 ,
2 , b12 =
2 , b22 =
2 , b32 =
=
2
3
3
2

b03

 
 
 
0
1
2
3







3 , b13 =
3 , b23 =
3 , b33 =
3 .
=
1
2
2
1
80
III NURBS
5.3. B–Spline–Flächen
Definition III.13 (B–Spline–Fläche) Eine B–Spline–Fläche ist eine
Tensorproduktfläche, bei der die Basisfunktionen B–Splines sind
S(u, v) =
n−1 m−1
X
X
Nid1 (u)Njd2 (v)aij .
i=0 j=0
Die B–Splines in u und in v können unterschiedlichen Grad d1 bzw. d2
haben und durch unterschiedliche Knotenwerte für u und v definiert sein.
Eine B–Spline–Fläche mit n Basisfunktionen in u und m Basisfunktionen
in v besitzt ein Netz mit n · m Kontrollpunkten.
Die wesentlichen Vorteile der B–Spline–Flächen im Vergleich zu Bézier–
Flächen liegen in der lokalen Kontrolle und der Möglichkeit die Glattheit
der Fläche durch die Vielfachheit der Knoten zu kontrollieren.
5 Flächen
81
Beispiel III.23 (B–Spline–Fläche)
Die abgebildete B–Spline–Fläche hat den Grad d1 = 2 in u und den Grad
d2 = 3 in v. Der Knotenvektor in u
0, 0, 0, 1, 1, 2, 2, 2,
erzeugt 5 Basisfunktionen. Durch den doppelten Knoten an der Stelle
u = 1 kann nur noch die Stetigkeit garantiert werden. Bei der Fläche ist
entlang der Kurve mit u = 2 ein Knick zu erwarten. Der Knotenvektor in
v
0, 0, 0, 0, 1, 1, 1, 1,
erzeugt 4 Basisfunktionen.
82
III NURBS
5.4. NURBS
Die Abkürzung NURBS steht für „Non Uniform Rational B–Spline Surface“.
Definition III.14 (NURBS) Eine B–Spline–Fläche, die zusätzlich zu
den n·m Kontrollpunkten aij noch n·m Gewichte wij besitzt, bezeichnet
man als NURBS. Die Parameterdarstellung lautet
n−1 m−1
X
X
S(u, v) =
Nid1 (u)Njd2 (v)wij aij
i=0 j=0
n−1 m−1
X
X
.
Nid1 (u)Njd2 (v)wij
i=0 j=0
Mit NURBS kann man Flächen, die aus Kreisen entstehen, exakt darstellen. Insbesondere zählen dazu Kreiszylinder, Kugeln und Rotationsflächen.
6 Übungen
83
6. Übungen
Uebung III.1 (Maximum der Bernsteinpolynome)
Zeigen Sie, dass das i–te Bernsteinpolynom vom Grad d
d i
d
Bi (x) =
x (1 − x)d−i ,
i
ein Maximum an der Stelle x =
i
d
hat.
Uebung III.2 (Rekursionsformel der Bernsteinpolynome)
Berechnen Sie die drei Bernsteinpolynom vom Grad 3 aus den beiden
Bernsteinpolynomen vom Grad 2 mit Hilfe der Rekursionsformel.
Uebung III.3 (Umrechnung in Bernsteinpolynome)
Stellen Sie das Polynom
p(x) = −1 + x + x2
als Summe von Bernsteinpolynomen dar.
Uebung III.4 (Bézier–Kurve vom Grad d = 3)
Eine Bezier–Kurve vom Grad 3 hat die Kontrollpunkte
0
3
6
9
b0 =
, b1 =
, b2 =
, b3 =
.
0
8
8
0
a) Skizzieren Sie das Kontrollpolygon.
b) Bestimmen Sie den Wert der Kurve für den Parameter t =
Hilfe des de Casteljau–Algorithmus zeichnerisch.
1
2
mit
84
III NURBS
c) Bestimmen Sie den Tangentenvektor im Anfangs– und im Endpunkt
der Kurve.
d) Skizzieren Sie den Verlauf der Kurve.
e) Welche Bézier–Kontrollpunkte haben die beiden Bézier–Kurven, die
entstehen, wenn man die Kurve am Parameterwert t = 21 unterteilt?
Uebung III.5 (Bézier–Kurve vom Grad d = 3)
Eine Bezier–Kurve vom Grad 3 hat die Kontrollpunkte
4
0
7
3
b0 =
, b1 =
, b2 =
, b3 =
.
0
7
7
0
a) Skizzieren Sie das Kontrollpolygon.
b) Bestimmen Sie den Wert der Kurve für den Parameter t =
Hilfe des de Casteljau–Algorithmus zeichnerisch.
1
2
mit
c) Skizzieren Sie den Verlauf der Kurve.
Uebung III.6 (B–Spline vom Grad d = 2)
Die vier Knotenwerte
0, 1, 2, 3
erzeugen einen einzigen B–Spline vom Grad 2. Stellen Sie diesen B–Spline
mit Hilfe der Rekursionsformel als abschnittsweise Funktion in der Form

 p1 (x) = a1 x2 + b1 x + c1 , für x ∈ [0; 1],
2
p2 (x) = a2 x2 + b2 x + c2 , für x ∈ [1; 2],
N0 (x) =

p3 (x) = a3 x2 + b3 x + c3 , für x ∈ [2; 3],
dar und zeigen Sie dass der B–Spline einmal stetig differenzierbar ist, d.h.
dass gilt
p1 (1) = p2 (1), p2 (2) = p3 (2), p01 (1) = p02 (1), p02 (2) = p03 (2).
6 Übungen
85
Uebung III.7 (B–Spline vom Grad d = 3)
Eine B–Spline–Kurve vom Grad d = 3 hat die Knotenwerte
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
a) Skizzieren Sie den ungefähren Verlauf der Basisfunktionen.
b) Wie viele Kontrollpunkte hat die B–Spline–Kurve?
c) Für welche Parameterwerte ist die B–Spline–Kurve definiert?
d) Was kann man über den Krümmungsverlauf der Kurve sagen?
Uebung III.8 (B–Spline–Kurve vom Grad 2)
Eine B–Spline–Kurve vom Grad 2 hat die Knotenwerte
0, 0, 0, 1, 2, 2, 2,
und die Kontrollpunkte
0
3
6
9
a0 =
, a1 =
, a2 =
, a3 =
.
0
8
8
0
a) Skizzieren Sie das Kontrollpolygon.
b) Bestimmen Sie den Wert der Kurve für den Parameter t = 1 mit
Hilfe des de Boor–Algorithmus zeichnerisch.
c) Skizzieren Sie den Verlauf der Kurve.
Uebung III.9 (B–Spline–Kurve vom Grad 3)
Eine B–Spline–Kurve vom Grad 3 hat die Knotenwerte
0, 0, 0, 0, 1, 2, 2, 2, 2
und die Kontrollpunkte
3
0
4
9
6
a0 =
, a1 =
, a2 =
, a3 =
, a4 =
.
0
4
8
4
0
86
III NURBS
a) Skizzieren Sie das Kontrollpolygon.
b) Bestimmen Sie den Wert der Kurve für den Parameter t = 1 mit
Hilfe des de Boor–Algorithmus zeichnerisch.
c) Skizzieren Sie den Verlauf der Kurve.
Uebung III.10 (Glattheit von NURBS)
Ein NURBS vom Grad d1 = 3 und d2 = 3 hat die Knotenwerte in u
0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2
und die Knotenwerte in v
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
a) Wie viele Kontrollpunkte hat die Fläche?
b) Für welche Parameterwerte u und v ist die Fläche definiert?
c) Was halten Sie von folgender Behauptung?
„Am u–Wert 1 besitzt die Fläche einen dreifachen Knoten, deshalb
hat die Fläche entlang der Flächenkurve zum Parameterwert u = 1
einen Knick.“