Bezier-Splines - stefan.goessner

Werbung
Bézier Splines
Historie, mathematische Grundlagen,
Anwendung und Programmierung
Semesteraufgabe im Fach Multimedia- & Webtechnologien
Prof. Dr.-Ing. Stefan Gössner
20.Dezember 2005
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
Historie
Historie
mathematische
Grundlagen
•Hierachie der Splines
•Natural Splines
•Bézier Splines
•B- Splines
•Unisurf
•Bézier und Casteljau
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
2
Was ist ein Spline?
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
• Ursprünglich aus Schiffsbau
• Eine Reihe von Punkten verbinden
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
3
Hierarchie der Splines
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Natural Splines
• Bézier-Splines
• B-Splines
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
4
Natural Splines
Historie
mathematische
Grundlagen
• Alle Stützpunkte auf der Kurve
• Nur leichte Krümmungen möglich
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
5
Hierarchie der Splines
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Natural Splines
• Bézier-Splines
• B-Splines
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
6
Bézier-Splines
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
• Stützpunkte auch neben, nur
Anfangs- und Endpunkt auf der
Kurve
• Flexibler als natural Splines
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
7
Pierre Etienne Bézier
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
• 1. September 1910 geboren
• 25. November 1999 gestorben
• Französischer Ingenieur
• 1933 – 1975 als Ingenieur bei
Renault
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
8
Freiformflächen - Autokarosserie
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Bis 1960
• Skizzen Tonmodelle
• Master-model
• Stanzvorlage
• Gewünscht 1960
• Verbesserte Datenübertragung
• Definition der Freiformflächen durch
numerische Daten
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
9
UNISURF
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Grundidee: Prozess der
Gießereien
• Definition Fläche: geometrische Ort einer
Kurve, welche zur selben Zeit bewegt und
verformt wird
• Dies Prinzip in mathematische Lösung
übertragen
• Erste Anwendung 1968
• Vollständiger Einsatz 1975
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
10
Zeitgleiche Entwicklungen
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
• Casteljau  Citroên
• Amerikanische Flugzeugindustrie
• Bericht von S.A. Coons
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
11
Hierarchie der Splines
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Natural Splines
• Bézier-Splines
• B-Splines
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
12
B-Spline
Historie
mathematische
Grundlagen
• bei geschlossenen Konturen kein
Stützpunkt direkt auf Kurve
• Sehr feine Krümmungen realisierbar
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
13
NURBS
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Non Uniform Rational B-Spline
• Elementares Werkzeug in CGI
(Computer Generated Imagery)
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
14
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Mathematische Grundlagen
•analytisch beschreibbare Geometrien
•analytisch nicht beschreibbare Geometrien
•parametrische Kurven
•Definition Bézierkurve
•Bernsteinpolynome
•de Casteljau- Algorithmus
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
15
Kurvendiskussion
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
16
Analytisch beschreibbare Geometrien
Historie
mathematische
Grundlagen
Gerade
x y
 1
a b
Anwendung
&
Programmierung
Punkt
x2 y2

1
a 2 b2
y 2  2 px
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
x2 y2

1
a 2 b2
e2  a 2  b2
x2  y 2  a2
Benjamin Stüttgen
Roman Hagen
17
Analytisch nicht beschreibbare
Geometrien
Historie
• Bézier- Splines
n
C t    Pi  Bi ,n t  mit t  0,1
i 0
n i
Bi ,n t    n   t i  1  t 
i
mathematische
Grundlagen
Anwendung
&
Programmierung
• B- Splines
n
C (t )   Pi  Bi ,k t  mit t  0, n  k  2
i 1
1 wenn ti  t  ti 1
Bi ,1 t  :  
 0 sonst
t  ti   Bi ,k 1 t  ti  k  t   Bi 1,k 1 t 
Bi ,k t : 

ti  k 1  ti
ti  k  ti 1
• NURBS =
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Non Uniform Rational B- Splines
Benjamin Stüttgen
Roman Hagen
18
Analytisch nicht beschreibbare
Geometrien
Historie
• Bézier- Splines
•Durch Anwender intuitiv veränderbar
•Definition durch Polygon
•Approximierend
•Grad hängt von Anzahl der Stützstellen ab
•Stützstellen haben globalen Einfluss
• B- Splines
•Definition durch Polygon
•Approximierend / Interpolierend
•Jeder Stützpunkt hat eigene Gewichtsfunktion
•Stützstellen habe lokalen Einfluss
mathematische
Grundlagen
Anwendung
&
Programmierung
• NURBS =
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Non Uniform Rational B- Splines
Benjamin Stüttgen
Roman Hagen
19
Parametrische Kurven
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
• Splines liegen in parametrischer Form vor
• Parameterformulierung: f t   x
g t   y
• x und y werden durch unabhängige Funktionen von t
berechnet
• keine Schwierigkeiten durch Mehrdeutigkeiten
• auch vertikale Tangenten möglich x  r  cos 
• Beispiel > Kreisfunktion:
y  r  sin  
0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
90
Johanna Jeuken
180
270
360
Benjamin Stüttgen
Roman Hagen
20
Definition Bézierkurven
Historie
• Eine Bézierkurve n- ten Grades wird definiert durch:
n
mathematische
Grundlagen
C t    Pi  Bi ,n t  mit t  0,1
i 0
und dem Bernsteinpolynom:
Anwendung
&
Programmierung
n i
Bi ,n t    n   t i  1  t 
i
Pi  Stützpunkte
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
21
Bernsteinpolynome
Historie
mathematische
Grundlagen
• reelle Polynome mit ganzzahligen Koeffizienten
• Stammen aus der Approximationstheorie
n i
Bi ,n t    n   t i  1  t 
i
hier : Bi , 4 , 0  i  n
1
Anwendung
&
Programmierung
B 0.4
B 1.4
B 2.4
B 3.4
B 4.4
0,8
0,6
0,4
0,2
0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
0
Johanna Jeuken
0,2
0,4
Benjamin Stüttgen
0,6
0,8
Roman Hagen
1
22
Berechnung der Kurve
n
C t    Pi  Bi ,n t  z.B. für t  0,5
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
i 0
Stützpunkte : P0 0,0,0; P1 30,25,0; P2 60,30,0; P3 90,10,0; P4 150,0,0
C x 0,5  B0.4 0,5  Px 0  B1.4 0,5  Px1  B2.4 0,5  Px 2  B3.4 0,5  Px 3  B4.4 0,5  Px 4
 0,0625  0  0,25  30  0,375  60  0,25  90  0,0625 150
 61,875
C y 0,5  B0.4 0,5  Py 0  B1.4 0,5  Py1  B2.4 0,5  Py 2  B3.4 0,5  Py 3  B4.4 0,5  Py 4
 0,0625  0  0,25  25  0,375  30  0,25   10   0,0625  0
 15
C z 0,5  0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
23
Bézier- Spline
40
Historie
60, 30
30
30, 25
mathematische
Grundlagen
Bézier- Spline
Stützpunkte
t=0,5
20
y
Anwendung
&
Programmierung
10
150, 0
0, 0
0
0
20
40
60
80
100
120
140
160
-10
90, -10
-20
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
x
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
24
De Casteljau- Algorithmus
n
Historie
i 0
P1.1
mathematische
Grundlagen
Anwendung
&
Programmierung
C t    Pi  Bi ,n t  mit t  0,1
P1.0
P0.2
n i
Bi ,n t    n   t i  1  t 
i
P0.3
P1.2
P0.1
P2.0
P2.1
P0.0
P3.0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
25
De Casteljau- Algorithmus
n
C t    Pi  Bi ,n t  mit t  0,1
P1.0
Historie
i 0
n i
Bi ,n t    n   t i  1  t 
i
P1.1
P1.2
mathematische
Grundlagen
P0.3
Anwendung
&
Programmierung
P0.1
P0.3
1 2 
P0.2
P2.0
P2.1
P0.0
P3.0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
26
De Casteljau- Algorithmus
n
Historie
i 0
n i
Bi ,n t    n   t i  1  t 
i
mathematische
Grundlagen
Anwendung
&
Programmierung
C t    Pi  Bi ,n t  mit t  0,1
P1.0
P0.3
1 4 
P3 8 
P 1 2 
P  18 
P5 8 
P2.0
P3 4 
P116
P7 8 
P1516
P0.0
P3.0
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
27
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Anwendung und Programmierung
•2D - Vektorgraphik (SVG – Inkscape)
•3D – Organic Design / Bézier- Patch-Modelling
•Digitale Typografie
•Modelling im CAD
•Programmierung (C++)
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
28
2D: Vektorgraphiken – am Beispiel >INKSCAPE<
•
Historie
•
mathematische
Grundlagen
•
•
Anwendung
&
Programmierung
•
Inkscape unterstützt den vom W3C vorgeschlagene
„Scalable Vector Graphics“ – Standard (SVG); ist ein
offener, zugänglicher Standard
Inkscape (SVG) verknüpft zusätzlich XML und CSS2
(hohe Kompatibilität im Internet durch reines TextFormat)
Anwendung in elektronischen Medien, sowie PrintIllustrationen
Bildaufbau über mathematische Funktionen mit Hilfe
von Koordinaten (keine Pixel)
Unterstützt Animation und Skalierbarkeit (Vorteil
Verktorgraphik)
 DURCH TEXTEINGABE, ABER EHER
UNPRODUKTIV. ODER MIT WERKZEUGEN
UND OPERATIONS- BZW.
EDITIERFUNKTIONEN
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
(z.B. im gängigen Media-Prog. wie
CorelDraw, Inkscape, Adobe
Illustrator,…)
Download:
inkscape.org
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
29
3D: Organic Design oder Bézier-Patch-Modelling
•
Historie
•
•
mathematische
Grundlagen
•
Durch Bézierkurven wird die Polygonale
Modellierung ersetzt (Punkt, Kante, Fläche)
Bézierkurven als Randkurven definieren die
tangentialen Patch-Übergänge
Erstellen von gekrümmten Oberflächen, nahtlosen Übergängen und organischen Körpern
Auch Kamerapfade als Béziersplines definierbar
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
 ÜBER TANGENTEN AN PUNKTEN
DER RANDKURVEN
(z.B. in gängigen Media-Prog. wie
3D Studio Max, BodyPaint,…)
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
30
Konturbeschreibung in der Mikro- und Detailtypografie
Historie
mathematische
Grundlagen
•
•
•
Digitale gestalterische Konstruktion von Buchstaben und Zeichen
Jede gängige digitale Schrift wurde mittels Splines erstellt
Bei PostScript- und OpenType-Formaten (Seitenbeschreibungssprache)
vorwiegend Verwendung von Bézierkurven
 DURCH REFERENZPUNKTLAGE WIRD DIE FORM / KONTUR BEEINFLUSST
(z.B. im gängigen Illustratrionsprogrammen wie Adobe Illustrator)
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
31
Modelling im Computer Aided Geometric Design
•
Historie
mathematische
Grundlagen
•
•
Methode für nicht analytisch beschreibbare
Kurven und Flächen (Sculptured Surfaces)
Flugzeugbau, Automobilbau, Schiffsbau,
Werkzeugbau, Formenbau, …
Vor allem im immer mehr verbreitertem 3DModelling; designtechnisch „weicher“
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
 ÜBER STÜTZSTELLEN WIRD SPLINE /
FREIFORMFLÄCHE GENERIERT
(z.B. in gängigen CAD-Progr. wie
Catia, Solid Works, …)
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
32
Programmierung von Bézier-Splines mit C++
•
Für beispielsweise Microsoft Windows Graphics Device Interface (GDI)
im 2D-Bereich (Darstellungssprache von MS-Windows am Bildschirm)
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Kubischer
Bézier-Spline
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
33
Programmierung von Bézier-Splines mit C++
•
Für beispielsweise MS-Windows Graphics Device Interface (GDI) im 2DBereich (Darstellungssprache von MS-Windows am Bildschirm)
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
2
Kubische
BézierSplines
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
34
Literatur
Historie
mathematische
Grundlagen
Anwendung
&
Programmierung
Semesteraufgabe
im Fach Multimedia& Webtechnologien
Prof. Dr.-Ing. Stefan
Gössner
Böhringer, J.; Bühler, P.; Schlaich, P.; Ziegler, H.-J.
Kompendium der Mediengestaltung; 2. Auflage;
Springer; Berlin, Heidelberg, New York; 2000; S.116 f.
Farin, G.
Kurven und Flächen im Computer Aided Geometric Design, 1. Auflage,
Braunschweig u.a., 1994, S.1-10
Grieger, I.
Graphische Datenverarbeitung, 2. Auflage
Springer; Berlin, Heidelberg, New York; 1992; S. 61-80
Mach, R.
3D Visualisierung; 1. Auflage;
Galileo Press; Bonn; 2000; S.54-57
Pahl, G.
Konstruieren mit 3D-CAD Systemen; 1. Auflage;
Springer; Berlin, Heidelberg, New York; 1990; S.74 f.
Peters, H.- F.
Rechnerunterstützte Gestaltung und Darstellung
Vieweg; Braunschweig; 1988; S. 45-50, 199-205
Spur, G.; Krause, F.- L.
Das virtuelle Produkt – Management der CAD- Technik
Hanser; München, Wien; 1997; S. 137-152
Von Koenigsmarck, A.
3D Character Design; 1. Auflage;
Galileo Press; Bonn; 2000; S.30 f.
http://www.fh-friedberg.de/users/mlutz/Javakurs/applets/Bezier/bezierhistorie.htm
http://www.fh-fulda.de/caelabo/inhalte/projekte/weber/.html
http://www.ibiblio.org/e-notes/Splines/
http://www.typografie.info/typowiki/index.php
http://www.wikipedia.de
Johanna Jeuken
Benjamin Stüttgen
Roman Hagen
35
Herunterladen