Splines
Splines
Splines
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Institut für Geometrie<br />
Abteilung für Geometrie im Bauwesen<br />
und im Scientific Computing<br />
Prof. Dr. H. Pottmann<br />
GEOMETRIE<br />
Interpolation & Approximation<br />
GEOMETRIE<br />
<strong>Splines</strong><br />
• Geg: Menge von Punkten<br />
• Ges: Kurve, welche die Punkte interpoliert (d.h. die<br />
Kurve enthält die gegebenen Punkte) oder approximiert<br />
(d.h. der Verlauf der Punkte wird durch die Kurve nur<br />
angenähert)<br />
• Es gibt unendlich viele interpolierende oder<br />
approximierende Kurven; CAD-Pakete bieten<br />
verschiedene Lösungen an, Auswahl hängt vom<br />
Designzweck ab<br />
Schiffbau Automobilbau Architektur<br />
Interpolierende<br />
Kurve<br />
Approximierende<br />
Kurve<br />
www.geometrie.tuwien.ac.at<br />
1<br />
www.geometrie.tuwien.ac.at<br />
2<br />
Beispiel zur Approximation<br />
Bézier-Kurven<br />
GEOMETRIE<br />
GEOMETRIE<br />
Geg: Datenpunkte<br />
Ges: Linearer Ausgleich, sodass die Punkte von der<br />
Ausgleichsgerade “möglichst wenig” abweichen<br />
f(x)<br />
f(x) = 1.37 + 0.70*x<br />
x<br />
Methode (Gauß):<br />
Minimierung der Summe<br />
der Fehlerquadrate<br />
Fehler eines Punktes:<br />
Abstand zur<br />
Ausgleichsgeraden in<br />
Richtung parallel zur<br />
y-Achse<br />
• Bézier-Kurven wurden aus dem Bedarf für Freiformkurven<br />
in der CAD/CAM/CAE-Technik entwickelt;<br />
P. de Casteljau (1959) bei Citroën, P. Bézier (1962) bei<br />
Renault<br />
• Standardmäßig sind Bézier-Kurven in vielen CAD-<br />
Paketen enthalten<br />
• Bézier-Kurven werden durch Angabe eines Polygons<br />
gesteuert. Dieses Polygon heisst Kontrollpolygon,<br />
seine Ecken werden Kontrollpunkte genannt<br />
www.geometrie.tuwien.ac.at<br />
3<br />
www.geometrie.tuwien.ac.at<br />
4
Grad einer Bézier-Kurve<br />
Grad einer Bézier-Kurve<br />
GEOMETRIE<br />
GEOMETRIE<br />
• Eine Bézier-Kurve mit n+1<br />
Kontrollpunkten besitzt den Grad n<br />
(= Grad der in der mathematischen<br />
Beschreibung auftretenden Polynome)<br />
• 2 Kontrollpunkte Grad 1 Bezier-<br />
Kurve ist Verbindungsstrecke der<br />
beiden Kontrollpunkte<br />
• Grad 1<br />
– lineare Bézier-Kurve<br />
• Grad 2<br />
– quadratische Bézier-<br />
Kurve<br />
b 1<br />
• 3 Kontrollpunkte Grad 2 Bezier-<br />
Kurve ist Parabelbogen; Kontrollpunkte:<br />
T 2<br />
Endpunkte b 0 b 2 und Schnittpunkt b 1<br />
der Tangenten T 0<br />
, T 2<br />
in den Endpunkten b 0 b 2<br />
• Grad 3<br />
– kubische Bézier-Kurve<br />
T 0 6<br />
www.geometrie.tuwien.ac.at<br />
5<br />
www.geometrie.tuwien.ac.at<br />
Geometrischer Algorithmus<br />
zur Konstruktion von Bezier-Kurven<br />
GEOMETRIE<br />
Fadenkonstruktion einer Parabel<br />
GEOMETRIE<br />
• Für eine quadratische Bezier-Kurve<br />
(Parabelbogen) ist der Algorithmus<br />
die Fadenkonstruktion einer<br />
Parabel<br />
• Wird später auf höhere Grade<br />
verallgemeinert (Algorithmus von<br />
de Casteljau)<br />
Geg: 2 Linienelemente (b 0 , T 0 ),<br />
(b 2 , T 2 ) einer Parabel<br />
Ges: weitere Linienelemente<br />
(d.h. Punkte mit Tangenten)<br />
T<br />
T 2<br />
Konstruktion für t = 0.25, 0.5,<br />
0 0.75<br />
b 0<br />
b 1<br />
b 2<br />
www.geometrie.tuwien.ac.at<br />
7<br />
0 t 1<br />
www.geometrie.tuwien.ac.at<br />
8
Fadenkonstruktion einer Parabel<br />
Fadenkonstruktion einer Parabel<br />
GEOMETRIE<br />
GEOMETRIE<br />
Methode: Übertragen von Teilverhältnissen<br />
b 11 (0.25)<br />
b 01 (0.75)<br />
b 01 (0.5)<br />
b 11 (0.25)<br />
b 01 (0.25)<br />
b 0<br />
2<br />
(0.25)<br />
Kurvenpunkt<br />
b 0<br />
b 1<br />
b 2<br />
b 01 (0.25)<br />
b 02 ...<br />
Kurven<br />
punkt<br />
b 11 (0.5)<br />
b 0<br />
b 1<br />
b 2<br />
b 11 (0.75)<br />
TV(b 0 , b 1 , b 0 1 ) = TV(b 1 , b 2 , b 1 1 ) = TV(b 0 1 , b 1 1 , b 0 2 )<br />
www.geometrie.tuwien.ac.at<br />
9<br />
www.geometrie.tuwien.ac.at<br />
10<br />
Algorithmus von de Casteljau<br />
GEOMETRIE<br />
Ist eine Verallgemeinerung der Fadenkonstruktion der Parabel.<br />
Teilverhältnisübertragen liefert Polygone mit absteigender<br />
Eckenzahl bis schliesslich nur noch der Kurvenpunkt<br />
übrigbleibt.<br />
b<br />
1 b 1 2<br />
b 1<br />
Geg: Kontrollpunkte<br />
b<br />
2<br />
0<br />
b<br />
2<br />
b 0 ,...,b n<br />
1<br />
Ges: Punkte der Bezier-<br />
Kurve n-ten Grades<br />
Jeder Punkt besitzt einen<br />
“Parameter” t aus dem<br />
Intervall [0,1]:<br />
t=0 entspricht b 0<br />
b 0<br />
1<br />
b 0<br />
b 0<br />
3<br />
0 t 1<br />
b 3<br />
b 2<br />
1<br />
de Casteljau-Schema:<br />
Algorithmus von de Casteljau<br />
t=1 entspricht b<br />
www.geometrie.tuwien.ac.at 11<br />
www.geometrie.tuwien.ac.at 12<br />
n<br />
b 0<br />
b 1 b 0<br />
1<br />
b 2 b 1<br />
1<br />
b 0<br />
2<br />
b 3 b 2<br />
1<br />
b 1<br />
2<br />
b 0<br />
3<br />
b 0<br />
GEOMETRIE<br />
b 1<br />
b 2<br />
b 0<br />
1<br />
b 0<br />
2<br />
b 1<br />
1<br />
b 0<br />
3<br />
0 t 1<br />
b 1<br />
2<br />
b 3<br />
b 2<br />
1
Beispiele von Bézier-Kurven<br />
Bézier-Kurven – Eigenschaften<br />
Kurven vom Grad 3<br />
GEOMETRIE<br />
Endpunktinterpolation + Tangenteneigenschaft<br />
(endpoint interpolation):<br />
GEOMETRIE<br />
b 0<br />
Eine Bézier-Kurve interpoliert den ersten und den<br />
letzten Punkt des Kontrollpolygons und besitzt dort<br />
die erste bzw. letzte Strecke des Kontrollpolygons<br />
als Tangente.<br />
Kurven vom Grad 4<br />
Kontrollpolygon<br />
b n<br />
www.geometrie.tuwien.ac.at<br />
13<br />
Linienelement<br />
Bézier-Kurve<br />
Linienelement<br />
www.geometrie.tuwien.ac.at<br />
14<br />
Wiederholung:<br />
Konvexe Hülle<br />
konvexer Bereich ist eine Punktmenge, welche die<br />
Verbindungsstrecken aller ihrer Punktepaare enthält<br />
GEOMETRIE<br />
Bézier-Kurven – Eigenschaften<br />
Konvexe Hülle Eigenschaft (convex hull property):<br />
Eine Bézier-Kurve liegt in der konvexen Hülle ihres<br />
Kontrollpolygons.<br />
GEOMETRIE<br />
konvexe Hülle ist<br />
der “kleinste”<br />
konvexe Bereich,<br />
welcher eine<br />
gegebene (Punkt-)<br />
Menge enthält<br />
www.geometrie.tuwien.ac.at<br />
15<br />
www.geometrie.tuwien.ac.at<br />
16
Bézier-Kurven – Eigenschaften<br />
GEOMETRIE<br />
Variationsreduzierende Eigenschaft in der Ebene [im Raum]<br />
(variation diminishing property):<br />
Geg: Bézier-Kurve, beliebige Gerade [Ebene]<br />
Eine Bézier-Kurve wechselt die Seite jeder beliebigen Gerade<br />
[Ebene] nicht öfter als das Kontrollpolygon.<br />
Bézier-Kurven – Eigenschaften<br />
Lineare Präzision (linear precision):<br />
Liegen die Kontrollpunkte b 0 ,...,b n einer Bézier-<br />
Kurve kollinear (= auf einer Geraden), dann liegt<br />
die Bézier-Kurve auf der Strecke b 0 b n<br />
GEOMETRIE<br />
2<br />
Testgeraden<br />
1<br />
3<br />
3<br />
Kontrollpolygon<br />
b n<br />
1<br />
2<br />
1<br />
3<br />
2<br />
Bézier-Kurve<br />
1<br />
b 0<br />
www.geometrie.tuwien.ac.at<br />
17<br />
www.geometrie.tuwien.ac.at<br />
18<br />
Unterteilung (subdivision):<br />
Gegeben sei eine Bézier-<br />
Kurve mit Kontrollpolygon<br />
(b 0 ,...,b n ) bzgl. [0,1].<br />
Manchmal ist es notwendig,<br />
eine einzelne Bézier-Kurve<br />
so in zwei Teilstücke zu<br />
zerlegen, dass sie<br />
gemeinsam identisch sind<br />
zur Ausgangskurve.<br />
1. Unterteilungsalgorithmus<br />
von de Casteljau liefert auch<br />
die Kontrollpolygone<br />
(c 0 ,...,c n ) und (d 0 ,...,d n ) der<br />
Bézier-Kurve bzgl. der<br />
Intervalle [0,t] bzw. [t,1].<br />
Bézier-Kurven – Eigenschaften<br />
www.geometrie.tuwien.ac.at<br />
GEOMETRIE<br />
b 1<br />
b 2<br />
c 1<br />
c 2<br />
c 3<br />
d 1<br />
d 2<br />
b 3<br />
c 0<br />
b 0 Beispiel: n=3<br />
19<br />
Unterteilung (subdivision):<br />
Gegeben sei eine Bézier-<br />
Kurve mit Kontrollpolygon<br />
(b 0 ,...,b n )<br />
2. Wiederholte Unterteilung<br />
mit de Casteljau liefert eine<br />
rasch gegen die Kurve<br />
konvergierende<br />
Polygonfolge.<br />
Bézier-Kurven – Eigenschaften<br />
b 0<br />
www.geometrie.tuwien.ac.at<br />
GEOMETRIE<br />
b 1<br />
b 2<br />
b 3<br />
d 0<br />
d 3<br />
20
Bézier-Kurven – Eigenschaften<br />
3D-Bézier-Kurven<br />
GEOMETRIE<br />
GEOMETRIE<br />
Unterteilung (subdivision):<br />
Gegeben sei eine Bézier-<br />
Kurve mit Kontrollpolygon<br />
(b 0 ,...,b n )<br />
b 1<br />
b 2<br />
Geg: Kontrollpunkte<br />
im 3-Raum<br />
Ges: Bézier-Kurve<br />
b 2<br />
b 3<br />
Bézier-<br />
Kurve<br />
3. Durch Eckenabschneiden<br />
entstehen keine zusätzlichen<br />
Seitenwechsel<br />
⇒ Variationsreduzierende<br />
Eigenschaft gilt<br />
b 3<br />
b 0<br />
b 1<br />
b 0<br />
www.geometrie.tuwien.ac.at<br />
21<br />
Die Bézier-Kurve liegt in der konvexen Hülle<br />
ihres Kontrollpolygons (hier: Tetraeder)<br />
Kontrollpolygon<br />
www.geometrie.tuwien.ac.at<br />
22<br />
Spline-Kurven<br />
Grad und Kontrollpunkte von <strong>Splines</strong><br />
GEOMETRIE<br />
GEOMETRIE<br />
Bézier-Kurven sind durch das<br />
Kontrollpolygon bestimmt.<br />
Damit bewirkt die Änderung eines<br />
Kontrollpunktes eine Veränderung des<br />
gesamten Kurvenverlaufes (global).<br />
⇒ ungünstig für Designzwecke<br />
Eine mögliche Abhilfe: Kurven niegrigen<br />
Grades zu einer Kurve zusammensetzen<br />
⇒ Spline- Kurve, lokale Kontrolle, an den<br />
Segmenttrennstellen geeignete<br />
Übergangsbedingung (z.B. gemeinsame<br />
Tangente).<br />
• Viele Splinetypen (B-Spline,<br />
NURBS, “continuous Bezier”<br />
in formZ, interpolierende<br />
kubische <strong>Splines</strong>) sind aus<br />
Bezierkurven<br />
zusammengesetzt<br />
• Der Grad der Bezier-<br />
Segmente heißt Grad der<br />
Splinekurve<br />
• Die Kontrollpunkte des<br />
<strong>Splines</strong> sind oft von den<br />
Kontrollpunkten der<br />
Beziersegmente verschieden<br />
www.geometrie.tuwien.ac.at<br />
23<br />
www.geometrie.tuwien.ac.at<br />
24
Grad und Kontrollpunkte<br />
von B-Spline Kurven<br />
GEOMETRIE<br />
Spline-Kurven<br />
GEOMETRIE<br />
• kubische B-Spline Kurve<br />
mit B-Spline Kontrollpolygon<br />
Beispiel: 2 mögliche Kurven zum selben Kontrollpolygon<br />
Bézier-Kurve<br />
(Grad 13)<br />
• kubische B-Spline Kurve<br />
mit Kontrollpolygonen der<br />
kubische Beziersegmente<br />
www.geometrie.tuwien.ac.at<br />
25<br />
Kurve ist aus Parabelsegmenten mit<br />
tangentenstetigem Übergang zusammengesetzt.<br />
B-Spline<br />
(Grad 2)<br />
www.geometrie.tuwien.ac.at<br />
26<br />
B-Spline Kurven, NURBS<br />
B-Spline-Kurven wurden ins Computer Aided Design von J. Ferguson<br />
(1964) bei Boeing eingeführt. In CAD-Systemen taucht auch oft der<br />
Name NURBS (= Non-Uniform Rational B-<strong>Splines</strong>) auf.<br />
B-Spline-Kurve<br />
Grad 2<br />
B-Spline-Kurve<br />
Grad 3<br />
GEOMETRIE<br />
B-Spline Kurven<br />
• Eine B-Spline-Kurve vom Grad n besteht aus<br />
Bezier-Kurven vom Grad n, welche mit<br />
optimaler Glattheit zusammengesetzt sind<br />
– Grad 2: stetige Tangente<br />
– Grad 3: stetige Krümmung<br />
• Angabe: Kontrollpolygon, Grad, Knoten (hängt<br />
mit mathematischer Beschreibung zusammen,<br />
für Design kaum verwendbar)<br />
GEOMETRIE<br />
B-Spline-Kurve<br />
Grad 7<br />
(= Bézier)<br />
www.geometrie.tuwien.ac.at<br />
27<br />
www.geometrie.tuwien.ac.at<br />
28
B-Spline Kurven<br />
GEOMETRIE<br />
B-Spline-Kurven<br />
Eigenschaften<br />
GEOMETRIE<br />
• B-Spline-Kurven können offen oder geschlossen sein:<br />
– Bei einer geschlossenen B-Spline-Kurve wird ein<br />
geschlossenes Kontrollpolygon zur Gänze geglättet<br />
– Im offenen Modus hat ein geschlossenes Polygon<br />
einen Anfangspunkt und einen damit identischen<br />
Endpunkt; dort wird nicht geglättet<br />
• Bei offenen B-Spline Kurven: Endpunkte mit Tangenten<br />
werden durch das Kontrollpolygon angegeben<br />
• Kurve liegt in der konvexen Hülle des Kontrollpolygons<br />
geschlossen<br />
offen<br />
offen<br />
• Es gilt die variationsreduzierende<br />
Eigenschaft<br />
www.geometrie.tuwien.ac.at<br />
29<br />
www.geometrie.tuwien.ac.at<br />
30<br />
NURBS – Gewichte (weights)<br />
Kegelschnitte als NURBS<br />
GEOMETRIE<br />
GEOMETRIE<br />
• B-Spline-Kurven und somit auch die<br />
Bézier-Kurven sind Spezialfälle von<br />
NURBS (= Non-Uniform Rational B-<br />
<strong>Splines</strong>)<br />
• NURBS haben einen zusätzlichen<br />
Designparameter ⇒ Gewichte.<br />
• Standardmäßig sind alle Gewichte<br />
gleich 1, dann stimmt die NURBS-<br />
Kurve mit der gewöhnlichen B-Spline-<br />
Kurve überein<br />
• Das Erhöhen des Gewichtes eines<br />
Kontrollpunktes bewirkt, dass die<br />
Kurve zu diesem Kontrollpunkt<br />
hingezogen wird<br />
Multipliziert man die Gewichte aller<br />
Punkte mit demselben Faktor, so<br />
erhält man die ursprüngliche Kurve<br />
b 1<br />
w 1<br />
> 1<br />
w 1<br />
= 1<br />
0 < w 1<br />
< 1<br />
w 1 > 1 Hyperbelbogen<br />
w 1 = 1 Parabelbogen<br />
0 < w 1 < 1 Ellipsenbogen<br />
b 0 b 2<br />
Von den Kegelschnitten (Kreis, Ellipse,<br />
Parabel, Hyperbel) kann nur die Parabel<br />
als Bézier-Kurve (vom Grad 2)<br />
repräsentiert werden.<br />
Durch das Verwenden von Gewichten<br />
können alle Kegelschnittstypen als<br />
NURBS vom Grad 2 erhalten werden.<br />
www.geometrie.tuwien.ac.at<br />
31<br />
www.geometrie.tuwien.ac.at<br />
32
Tipps zum CAD Konstruieren<br />
mit Splinekurven<br />
GEOMETRIE<br />
<strong>Splines</strong> in der Architektur<br />
GEOMETRIE<br />
• Komplexe Kurvenformen mittels<br />
NURBS modellieren,<br />
Feinabstimmung durch<br />
Veränderung der Kontrollpunkte<br />
und der Gewichte<br />
Grand Arbour,<br />
Brisbane, Australia<br />
www.geometrie.tuwien.ac.at<br />
33<br />
www.geometrie.tuwien.ac.at<br />
34<br />
Unterteilungskurven<br />
(Subdivision curves)<br />
GEOMETRIE<br />
Chaikins Algorithmus<br />
GEOMETRIE<br />
• Grundideen der Unterteilung gehen<br />
zurück in die 40er Jahre als G.<br />
Rahm „corner cutting“ dazu<br />
verwendete glatte Kurven zu<br />
beschreiben<br />
• stationäres Unterteilungsschema, d.h. in jedem<br />
Iterationsschritt k=1,2,… wird dieselbe Methode<br />
(corner cutting) angewendet<br />
• für k ∞ erhält man so eine quadratische<br />
B-Spline Kurve<br />
• Anwendungen im CAD,<br />
geometrischen Modellieren und in<br />
der Computergraphik<br />
www.geometrie.tuwien.ac.at<br />
35<br />
www.geometrie.tuwien.ac.at<br />
36
Chaikins Algorithmus<br />
Chaikins Algorithmus<br />
GEOMETRIE<br />
GEOMETRIE<br />
P 1 P 2<br />
P 3<br />
P 4<br />
Q 1 R 1 R 3<br />
R 0<br />
Q 2<br />
Q 0<br />
Q<br />
R 3<br />
P<br />
2<br />
0<br />
•In jedem<br />
Iterationsschritt<br />
Teilen der<br />
einzelnen<br />
Zwischenstrecken<br />
bei 1/4 bzw. 3/4<br />
k = 0 k = 1 k = 2<br />
k = 3 k = 4<br />
k = 5<br />
www.geometrie.tuwien.ac.at<br />
37<br />
www.geometrie.tuwien.ac.at<br />
38<br />
Unterteilungskurven<br />
• Weitere Unterteilungsalgorithmen für Kurven (und auch<br />
Flächen) werden im Wahlpflichtfach “CAAD und<br />
Geometrie” vorgestellt<br />
• Bsp: Interpolierender Unterteilungsalgorithmus<br />
GEOMETRIE<br />
0 1 2<br />
3<br />
4<br />
5<br />
5<br />
www.geometrie.tuwien.ac.at<br />
39