Darstellung von Kurven und Flächen Technische Universität Dresden Fakultät Informatik Institut für Software- und Multimediatechnik Dozent: Dr. Mascolous Referent:
Gliederung / Einleitung 1 / 25 1. Kurven 1.1 Verbindung von zwei Kurven 1.2 Ausgewählte Kurven 1.2.1Hermite-Kurven 1.2.2 Beziér-Kurven 1.2.2.1 Kubische Bezierkurven 1.2.3 Splines 1.2.3.1 Kubische B-Splines 1.2.3.2 NURBS 1.3 Interpolation 1.3.1 Polynominterpolation 1.3.2 B-Spline Interpolation 1.3.3 Bézier Interpolation 2.Flächen 2.1 Bézierflächen Quellen- und Literaturverzeichnis
1.1 Verbindung von 2 Kurven 2 / 25 Problem: Art der Verbindung, wenn man eine Kurve durch 2 Teilkurven niedrigeren Grades beschreiben will beide Kurven müssen gemeinsamen Punkt besitzen dies nennt man G 0 -Stetigkeit bzw. C 0 -Stetigkeit Tangentenvektoren im Schnittpunkt gleiche Richtung = G 1 -Stetigkeit Tangentenvektoren gleichen Betrag = C 1 -stetig automatisch G 1 -stetig. C n -stetig = sie bis zur n. Ableitung übereinstimmen 1.Ableitung = Geschwindigkeit eines Punktes; 2.Ableitung = die Beschleunigung. G 1 -Stetigkeit = Voraussetzung für glatt erscheinende Kurve
Ausgewählte Kurven 3 / 25 Kurven sind allgemein Polynome, wobei die drei Kurven für die Achsen x, y, z jeweils durch ein Polynom n.ten Grades in Abhängigkeit von t beschrieben werden. Kubische Kurven sind von der allgemeinen Form: x(t) = a x t 3 + b x t 2 +c x t+d x Da man 4 Koeffizienten hat, braucht man 4 Bedingungen, um die Kurve zu charakterisieren.
Bézier-Kurven 4 / 25 Aussehen: Ein Band liegt zwischen den beiden Endpunkten, und die Kontrollpunkte ziehen das Band zu sich hin mit einer Stärke, die sich proportional zum Abstand des Kontrollpunktes zur Kurve verhält. Allgemeine Formel: n-dimensionale Bézierkurve: Bernsteinpolynome: Pi: Kontrollpunkte Wertebereich: 0 t 1
Kubische Bézierkurven 5 / 25 Gleichung: C(t) = P 0 (1-t) 3 + 3 P 1 t (1-t) 2 + 3 P 2 t 2 (1-t) + P 3 t 3 Bedingungen: 2 Endpunkte (P 1, P 4 ) und 2 Zwischenpunkte (P 2, P 3 ), wobei P 1 P 2 und P 3 P 4 die Tangenvektoren in P 1 und P 4 implizit angeben. Eigenschaften: die Kurve durchläuft die beiden Endpunkte affine Transformation (Verschiebung, Skalierung, Rotation, Scherung) kann auf die Bézierkurve durch Transformation der Kontrollpunkte angewendet werden ("affine Invarianz") als gewichtete Summe polynomialer Basisfunktionen darstellbar Summe der Basisfunktionen hat an einer bestimmten Stelle den Wert 1 =>Kurve liegt in konvexer Hülle der Kontrollpunkte
Kubische Bézierkurven 6 / 25 C 0 -Stetigkeit durch gemeinsamen Kontrollpunkt C 1 -Stetigkeit, wenn P 4 = P 5 (letzter Punkt 1. Kurve = 1. Punkt 2. Kurve) und Strecke P 4 P 6 Mittelpunkt P 5 hat (der Tangentenvektor beider Kurven im Punkt 4 ist gleich)
Kubische Bézierkurven 7 / 25 Darstellung (Casteljau-Algorithmus): 1. Möglichkeit: Kurve berechnen für bestimmte Werte von t 2. Möglichkeit: Casteljau-Algorithmus ( relativ einfache bestimmung eines Punktes auf der Kurve) Verbindung der einzelnen Punkte zu Polygonzug, um Näherungslösung für Kurve zu erhalten
Kubische Bézierkurven 8 / 25 Arbeitsweise (speziell für kubische): 4 Kontrollpunkte sind durch Geraden verbunden, wobei ein Punkt P 0 i immer mit seinem Nachfolger P0 i+1 verbunden ist (i = 0, 1, 2) Teilung der 4 Strecken im Verhältnis t : (1-t) (t є [0, 1]) 3 neue Punkte P 1 i (i = 0, 1, 2) Teilung dieser im gleichen Verhältnis 2 Punkte P 2 i (i = 0,1) Teilung dieser Strecke P 3 i, der genau der Funktionswert von der Kurve an der Stelle t ist Also muss man nur Grundrechenarten ausführen und keine Fakultäten bzw. Potenzen berechnen.
Kubische Bézierkurven 9 / 25
Hermite-Kurven 10 / 25 Bedingungen (kubisch): 2 Endpunkte (Kurve läuft durch sie hindurch) und 2 Tangenvektoren in diesen Punkten. Eigenschaften: siehe Bezier-Kurven
Splines 11 / 25 Spline: flexibler Metallstreifen, mit denen Flächen von Flugzeugen, Autos und Schiffen konstruiert wurden an Enden der Streifen werden kleine Gewichte angebracht Krümmung unter normaler Belastung sind sie C 2 -stetig Mathematisches Äquivalent: natürliche kubische Splines interpolieren (durchlaufen) alle Kontrollpunkte Koeffizienten der Kurven hängen von allen n Kontrollpunkten ab zur Berechnung muss eine (n+1) * (n+1) Matrix invertiert werden Änderung eines Kontrollpunktes Auswirkungen auf gesamte Kurve
Kubische B-Splines 12 / 25 B steht für Basis, da B-Splines als gewichtete Summe polynomialer Basisfunktionen sind (wie auch Bézierkurven) Summe der Basisfunktionen hat an jeder Stelle den Wert 1 Kurve innerhalb der konvexen Hülle der Kontrollpunkte relativ einfache Berechnung und lokale Steuerung machen B-Spline-Kurven und -Flächen zu am weitest verbreiteten Kurven zur Beschreibung von gekrümmten Flächen (1-t) 3 3t 3 6t 2 + 4-3t 3 + 3t 2 +3t + 1 t 3 Q(t) = P 0 + P 1 + P 2 + P3 6 6 6 6
Kubische B-Splines 13 / 25
Kubische B-Splines 14 / 25 Eigenschaften: interpolieren Kontrollpunkte nicht (approximieren nur) Koeffizienten hängen nur von einigen Kontrollpunkten ab gewisse lokale Änderungen durchführbar (Koeffizienten schneller berechenbar) Stetigkeiten entstehen durch gemeinsame Nutzung von Kontrollpunkten durch mehrere Segmente ein Kontrollpunkt hat Einfluss auf max. 4 Kurvensegmente bewegt man ihn in eine Richtung, bewegen sich diese Kurvensegmente in gleiche Richtung bestehen aus n-3 kubischen polynomialen Kurvensegmenten, die alle einen eigenen Definitionsbereich 0 <= t <= 1 haben Substitution t = t+k gemeinsamer, stetiger Definitionsbereich für den gesamten Spline Wiederholen der ersten 3 Kontrollpunkte am Ende der Folge von Kontrollpunkten geschlossene Kurve verläuft üblicherweise nahe an Mittelpunkten der Strecken zwischen benachbarten Kontrollpunkten
Kubische B-Splines 15 / 25 Uniforme Splines: Knoten (die Verbindungspunkte der einzelnen Kurven) haben gleiche Abstände voneinander Interpolation: Wiederholte Verwendung von Kontrollpunkte (direkt hintereinander) Interpolation bestimmter Punkte Aber: oft entstehen Geradenstücke oder Spitzen anderes Verfahren verwendet Phantompunkte, wobei 2 neue Kontrollpunkte eingeführt werden Kurve durchläuft beide Endpunkte Darstellung (Algorithmus von De-Boor): (Äquivalent zum Casteljau-Algorithmus) bei B-Spline 3. Grades werden 2 Iterationen benötigt 1. Iteration 2 neue Punkte 2. Iteration ein neuer Punkt = gesuchter Punkt auf der Kurve
NURBS 16 / 25 Definition: NURBS = Non uniform rational B-Splines Nicht-uniform bedeutet, dass die Knoten möglicherweise unterschiedlich großen Abstände voneinander haben. Rational bedeutet, dass die Kurve als Quotient von 2 B-Spline- Polynomen schreibbar ist. Durch die Nichtuniformität ist mehrfache Nutzung von Kontrollpunkten zulässig, wodurch zwar die Stetigkeit gesenkt wird, aber die Interpolation von Punkten ermöglicht wird. Ein Knoten darf allerdings nicht öfter als n (n = Grad des Polynoms) auftreten, da sonst Unterbrechungen der Kurven auftreten.
NURBS 17 / 25 Eigenschaften: Invariant bei Rotation, Skalierung, Translation und Zentralprojektion (nichtrationale Kurven sind bei Zentralprojektion nicht invariant); d.h. man muss Transformation nur auf Kontrollpunkte anwenden, nicht auf jeden Punkt Bézierkuven sowie rationale B-Splines darstellbar Bsp: Divisor 1 setzen nichtuniformer rationaler B-Spline Beschränkung auf gleiche Parameterintervalle uniforme Kurven Bézierkurven = Spezialfall von B-Splines exakte Kegelschnitte sowie Kreise darstellbar, die häufig in CAD- Anwendungen benötigt werden
Polynominterpolation 18 / 25 zu n + 1 Punkten existiert ein Interpolationspolynom n-ten Grades man erhält das Interpolationspolynom z.b. mit Hilfe der Formel von Lagrange:
B-Spline Interpolation 19 / 25 Interpolation dieser Menge von Punkten: stückweise lineare Interpolation liefert Menge von Geradenstücken:
B-Spline Interpolation 20 / 25 Polynominterpolation 7.Grades erzeugt diese Kurve: Kubische Spline-Interpolation:
Bézier Interpolation 21 / 25
Flächen 22 / 25 Allgemeine Formel für parametrisierte kubische Kurve: Q(t) = G * M * T G ist Geometriematrix (Bézier: Kontrollpunkte). G = [G 1 G 2 G 3 G 4 ]. M ist Basis-Matrix (Koeffizienten des Polynoms). T ist Parameter-Matrix (T = [t 3 t 2 t 1]). Wenn die Geometriematrix nicht konstant ist (also die Kontrollpunkte selber eine Funktion in Abhängigkeit von s sind), ergibt sich: Q(t,s) = [G 1 (s) G 2 (s) G 3 (s) G 4 (s)] * M * T Kubischen Fläche: alle G i (s) sind selber kubische Polynome Für ihre Beschreibung braucht man 16 Unbekannte (4 pro Polynom bei 4 Polynomen).
Flächen 23 / 25 Darstellung: Man wählt einige Werte für konstantes s und einige für konstantes t und berechnet mit ihnen die entstehenden Kurven. Verbindung zu einer Fläche Aufgrund des hohen Berechnungsaufwands wurden andere Methoden wie die Vorwärtsdifferenziation entwickelt.
Bézierflächen 24 / 25 Zur Beschreibung einer Bézierfläche benötigt man 16 Kontrollpunkte. Um C 0 -Stetigkeit zwischen 2 Flächen zu erhalten, müssen sie 4 Kontrollpunkte gemeinsam haben (also eine Kante). G 1 -Stetigkeit erhält man, indem die jeweils 4 Punkte neben den Kantenpunkten auf einer Geraden liegen.
Quellen- und Literaturverzeichnis 25 / 25 Foley, James (u.a.); Grundlagen der Computergraphik, Einführung, Methoden Konzepte; Bonn, 1994; ISBN 0-201- 60921-5 Glassner, Andrew (u.a.); Graphics Gems I; San Diego, 1990; ISBN 0-12-2861666-3 Piegl, Les und Tiller, Wayne; The NURBS BOOK; Heidelberg, 1995; ISBN 3-540-61545-8 Rauber, Thomas; Algorithmen in der Computergraphik; Stuttgart, 1993; ISBN 3-519-02127-7 Wikipedia (http://de.wikipedia.org)