30.10.2013 Aufrufe

Splines

Splines

Splines

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!