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 P3 8 P 1 2 P 18 P5 8 P2.0 P3 4 P116 P7 8 P1516 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