Kurven und Flächen. Interaktive Kontrolle und Präsentation komplexer Kurven und Flächen (=Modellierung) 3D Modellierung Prof. Dr.-Ing. H.-P.

Ähnliche Dokumente
Approximationsverfahren für die Kurvendarstellung

Darstellung von Kurven und Flächen

9. Parametrische Kurven und Flächen

Teil 2: Kurven und Flächen. Kurven und Flächen. Kurven. Parametrische Objekte. Kurven: 1D-Objekte Flächen: 2D-Objekte, basierend auf Kurven

Teil 2: Kurven und Flächen

Polynome im Einsatz: Bézier-Kurven im CAD

0.1 Modellierung von Kurven und Flächen mittels B-Splines

Computergraphik I. Freiformkurven. aus: Farin Curven und Flächen im CAGD. Oliver Deussen Freiformkurven 1

Oberflächenrepräsentationen Kontinuierliche Kurven Bezier-Kurven. Freiformflächen. Diskret

Kurven. Markus Kraxner 22. Januar 2015

gekrümmte Flächen / Freiformflächen (analog zur Kurvendarstellung)

Splines. Bézier-Kurven. Beispiel zur Approximation. Interpolation & Approximation. Schiffbau Automobilbau Architektur. f(x) f(x) =

6. Polynom-Interpolation

Splines und B-Splines

Kurven und Flächen. Vorlesung Ergänzung zur Graphischen Datenverarbeitung Sommersemester 2000 Johann-Wolfgang Goethe Universität, Frankfurt am Main

Geometrisches Modellieren - Körper -Modelle Repräsentationsschemata Primitive Instancing Decomposition Models Constructive Models

Thema des Referats: Darstellung von Kurven und Flächen

Gliederung. Interpolation vs. Approximation. Gliederung (cont.)

Splines. Splines. Vom Gebilde zur Geometrie. Katharina Birner. Institut für Angewandte Geometrie Splines

Klassische Polynom Interpolation.

5 Interpolation und Approximation

H.J. Oberle Analysis II SoSe Interpolation

Unterteilungskurven und -flächen

11. Darstellung von Kurven und Flächen

Numerisches Programmieren, Übungen

Interpolation und Approximation von Funktionen

Polynominterpolation mit Matlab.

künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

Nachklausur am Donnerstag, den 7. August 2008

KAPITEL 9 Splinefunktionen

Sie braucht weniger Speicherplatz als das Polygon und

Darstellung von Kurven und Flächen

Prüfungsdauer: 120 Minuten

Approximation durch Polynome

Kapitel 7. Interpolation und Approximation II. Inhalt: 7.1 Spline-Interpolation 7.2 Trigonometrische Interpolation 7.3 Tschebyscheff-Approximation

Mathematische Grundlagen für die Vorlesung. Differentialgeometrie

Darstellung von Kurven und Flächen

3 Kurven und Flächen. HS Heilbronn - Prof. Dr. P. Fleischmann CAD-K3 10/2011 3/1. Bild 3.1: 3D-Flächen. Bild 3.2: Freiformkurven

Übungen zu Splines Lösungen zu Übung 20

Proseminar Bernsteinpolynome Bézier-Flächen. Dana Eckhardt Matr.-Nr:

Interpolation und Approximation

Computergrafik / Animation. künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

(x x j ) R m [x] (3) x x j x k x j. R m [x]. (4)

10.6. Implizite ebene Kurven und Tangenten

c) Realisierung des Gauß Algorithmus in Gleitpunktarithmetik: Fehlerschranke hängt linear ab von max i,k l ik. 8n 3 max i,j,k a (k) ij ε.

Approximationstheorie und Approximationspraxis

Approximation. E(N) N. Beachte: Der Wert für N = 32 ist vernachlässigt, da er in der Grössenordnung der Rechengenauigkeit liegt.

Polynominterpolation

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen

MATHEMATIK 2 FÜR DIE STUDIENGÄNGE CHEMIE UND LEBENSMITTELCHEMIE

Grundlagen der geometrischen Datenverarbeitung

Computergrafik Inhalt Achtung! Kapitel ist relevant für CG-2!

NURBS- und Loft- Modelling in Blender von Carina Schiller 2 /27

Spline Morphing. Softwarepraktikum im IWR. Carl Friedrich Bolz. Carl Friedrich Bolz

Mathematik I+II. für FT, LOT, PT, WT im WS 2015/2016 und SS 2016

Themen Lagrange-Interpolation Hermite-Interpolation. Splines. Bézier-Kurven. 5 Interpolation. Interpolation Die Lagrangesche Interpolationsaufgabe

Differentialgeometrische Eigenschaften von Kurven und Flächen

Einführung. Ablesen von einander zugeordneten Werten

KAPITEL 8. Interpolation

B-Spline-Kurve und -Basisfunktionen

Kurven. Wie können oder sollten Kurven repräsentiert werden?

Kapitel 6 Differential- und Integralrechnung in mehreren Variablen

2.4 Darstellung beliebiger Funktionen in CAD-Systemen

Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen

1 2 x x x x x x2 + 83

Gitterfreie Methoden. Florian Hewener. 29. Oktober 2013

FEM isoparametrisches Konzept

Numerisches Programmieren, Übungen

KLAUSUR zur Numerik I mit Lösungen. Aufgabe 1: (10 Punkte) [ wahr falsch ] 1. Die maximale Ordnung einer s-stufigen Quadraturformel ist s 2.

Spline-Interpolation

HTL Kapfenberg SPLINE Interpolation Seite 1 von 7.

T n (1) = 1 T n (cos π n )= 1. deg T n q n 1.

Spline-Räume - B-Spline-Basen

Angewandte Mathematik am Rechner 1

31. Kurven in Ebene und Raum

Gliederung. Gliederung (cont.) Gliederung (cont.)

5. Gitter, Gradienten, Interpolation Gitter. (Rezk-Salama, o.j.)

DIPLOMARBEIT. Titel der Diplomarbeit. Optimale Box-Einschließungen von NURBS Kurven. angestrebter akademischer Grad

Inhalt Kapitel IV: Interpolation

Numerische Verfahren

Übungen mit dem Applet Kurven in Parameterform

REPETITORIUM DER HÖHEREN MATHEMATIK. Gerhard Merziger Thomas Wirth

Numerik für Ingenieure I Wintersemester 2008

Wenn man den Kreis mit Radius 1 um (0, 0) beschreiben möchte, dann ist. (x, y) ; x 2 + y 2 = 1 }

Dierentialgleichungen 2. Ordnung

5 Numerische Mathematik

Numerische Verfahren

Interpolation. Heinrich Voss. TUHH Heinrich Voss Kapitel / 49.

Abbildung 10.1: Das Bild zu Beispiel 10.1

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( )

1. Hierarchische Basen. 1. Hierarchische Basen Perlen der Informatik I, Hans-Joachim Bungartz page 1 of 33

einer Raumkurve, wobei t als Zeitparameter interpretiert wird. w( t ) beschreibt also den kinematischen Kurvendurchlauf (κ ι ν ε µ α = Bewegung).

(a), für i = 1,..., n.

Kommentierte Musterlösung zur Klausur HM I für Naturwissenschaftler

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1):

Differenzialrechnung. Mathematik-Repetitorium

Algebraische Kurven. Holger Grzeschik

Transkript:

Kurven und Flächen Interaktive Kontrolle und Präsentation komplexer Kurven und Flächen (=Modellierung) 154

Modellieren mit Freiformkurven und -flächen Modellierungsprozesse (Taping) in der Automobilindustrie Die Bilder stammen aus Projektarbeiten des Fraunhofer Institutes für Grafische Datenverarbeitung 155

Freiformkurven und -flächen Eigenschaften Mehrdeutigkeit möglich, abgeschlossen bzgl. Transformationen, reichhaltig erweiterbar auf Flächen: S(u, v) = ( x(u, v), y(u, v), z(u, v) ) Interpolation zwischen Stützpunkten (z.b. graphische Darstellung von Meßergebnissen) Approximation von Polygonnetzen (z.b. CAD in der Karosseriekonstruktion, Produktmodellierung und in geographischen Informationssystemen interaktive Geländemodellierung) Die letztgenannten Punkte stellen Freiformkurven und -flächen dar. 156

Mathematische Modelle analytisch gegebene Kurven und Flächen (z.b. Kugeln, Paraboloide): x 2 + y 2 + z 2 = r 2 implizit: f(x, y, z) = 0 explizit: y = f( x, z ) Mehrdeutigkeit möglich Bemerkung: z.b. Kugel nicht abgeschlossen gegenüber Transformationen : (x, y, z) - (m x, m y,m z ) <= r Parameterdarstellung: P(t) = (x(t), y(t), z(t)) P(u,v) = ( x(u,v), y(u,v), z(u,v) ) 157

Anforderungen (I) gegeben Kontrollpunkte/Stützstellen (mit dem Ziel: zu interagieren, modellieren, verändern, beherrschen...) Mehrwertige Kurven müssen möglich sein (z.b. Spiralen) zu einem x-wert kann es mehr als einen y-wert geben lokale vs. globale Kontrolle: Lokale Kontrolle: Änderung (Verschieben eines Kontrollpunktes) hat nur lokale Auswirkung (Kurvenverlauf ändert sich nur in dessen Umgebung) Globale Kontrolle: Wenn 1 Stützpunkt geändert wird, dann ändert sich der gesamte Kurvenverlauf 158

Skizze/Begriffe (sechs) Kontrollpunkte/Stützstellen Anfangs-/Endpunkt 159

Anforderungen (II) Achsenunabhängigkeit (Transformationen müssen möglich sein) Glatte Kurven (Keine Oszillierung): Für bel. Gerade darf die Anzahl der Schnittpunkte mit der Kurve nicht größer sein als die Anzahl der Schnittpunkte mit dem Kontrollpolygon Reichhaltigkeit Gerade und Ebene zu wenig Kontrolle am Rand/Endpunkte ( Zusammensetzung von Segmenten/Teilstücken) 160

Anforderungen (III) Mathematische Repräsentation präzise, Tangenten, Krümmung herleitbar komplette generative, herleitbare Beschreibung interaktives Modellieren muss möglich sein (kurz Antwortzeiten einfache Berechnungsvorschrift) Man kann sich vorstellen, dass die Punkte bei der Interpolation und Approximation zeitlich hintereinander erzeugt werden (P(t)). 161

Interpolation Gegeben sind n+1 disjunkte (=verschiedene) Stützstellen (P 0.. P n ). Das Ziel ist nun, mit einem algebraischen Polynom mit möglichst niedrigem Grad, das an den Stützstellen die zugehörigen x- und y- Werte annimmt, alle Wertepaare zu beschreiben Interpolationsfunktion: n Polynom(t) = P i * g(t) i= 0 n+1 Stützstellen, g(t) (Ge-)Wichtungsfunktion g(t) besagt, wie die einzelnen Kontrollpunkte in die jeweilige Berechnung des Punktes eingehen. Dabei durchläuft t das Intervall [0, 1]. Man kann sich das so vorstellen, dass die Variable t in einem Zeitintervall auf der so definierten Kurve entlang wandert. 162

Lagrange sche Interpolationsfunktion Für die Interpolation von Kontrollpunkten bietet sich die Lagrange sche Interpolationsfunktion an: n n P(t) = Pi * (t - j/n) / (i/n - j/n) mit t = 0.. 1 i= 0 j = 0 j i für Lagrange gilt: nur globale Kontrolle Lagrange neigt zur Oszillation bei vielen Kontrollpunkten, d.h. es wird keine glatte Kurve erzeugt (Wellen können entstehen) in den Endpunkten nur Kontrolle über die Koordinaten, nicht über die Tangente und Krümmung Kurvenverlauf ist schwer zu prognostizieren 163

Lagrange sche Interpolationsfunktion Für n = 3 ergibt sich die folgende Lagrange sche Interpolationsfunktion: ( t - 1/3) * (t - 2/3) *( t - 3/3) P(t) = P0 * + (0/3-1/3) * (0/3-2/3) *(0/3-3/3) ( t - 0/3) * (t - 2/3) *( t - 3/3) P1 * + (1/3-0/3) * (1/3-2/3) *(1/3-3/3) ( t - 0/3) * (t - 1/3) *( t - 3/3) P2 * + (2/3-0/3) * (2/3-1/3) *(2/3-3/3) ( t - 0/3) * (t - 1/3) *( t - 2/3) P3 * (3/3-0/3) * (3/3-1/3) *(3/3-2/3) insbesondere gilt: P(t = i/n) = Pi 164

Lagrange-Polynome vom Grad 2 Mit 3 Stützstellen 165

Lagrange-Polynome vom Grad 4 Interpolation mit 5 Stützstellen 166

Approximation Gegebene Funktion wird durch approximierende Funktion ersetzt Die Funktion ist in aller Regel durch eine endliche Anzahl von Wertepaaren gegeben (x i,f(x i )), wobei die Wertepaare nicht notwendigerweise auf der Approximationsfunktion liegen. Dies entspricht einer Verringerung der Anforderung gegenüber der Interpolation. Bézier-Kurven Als Wichtungsfunktion verwendet man bei den Bézier-Kurven die Bernstein-Polynome. 167

Bézier-Kurven Eigenschaften: 1. Endpunkte werden interpoliert: Stützstelle für t = 0 und t = 1 liegen auf der Kurve. 2. Die Steigung P in den Endpunkten ist die Kante des Stützpolygons: P (t=0) = 3 * ( P 1 -P 0 ) P (t=1) = 3 * ( P n -P n-1 ) (Bem.: Kontrollieren Sie durch eigenes Ableiten) 3. Die Richtung ist P 1 -P 0 und P n -P n-1 4. Für 0 t 1 ist 0 B i,n ( t ) 1 5. Für bel. 0 t 1 ist P(t) = B i, n (t) = 1 mit i = 0.. n 6. Kurve liegt immer in der konvexen Hülle des Kontrollpolygons (wg. 3. und. 4.) In der Regel arbeitet man mit n = 3 (d.h. 4 Kontrollpunkten). 168

Bernstein Polynome Wichtungsfunktion = Bernstein Polynome (n+1) Stützstellen: P 0.. P n n P(t) = P i * B i, n (t) mit i = 0.. n und n = 3 i = 0 n B i,n (t) = * t i * (1-t) n-i 0 t 1 und mit i n n! = i i! * (n-i)! 169

Basisfunktion 170

Aufgabe Gegeben sind die Stützpunkte P0 = (0, 2, 3), P1 = (6, 5, 2), P2 = (8, 1, 4), P3 = (4,-2, 1) a) Bestimmen Sie die Bézier-Approximation für t = 0, 1/3, 2/3 und 1 b) Schreiben Sie die Koeffizienten Bi, n als Funktion von t für i = 0.. 3 c) Stellen Sie das Ergebnis graphisch dar d) Was bewirkt die Änderung der Stützstelle von P3 (4, -2) nach P3 (9, 1)? (Erklären, nicht rechnen) e) Wie erreicht man, dass zwei Kurvensegmente beim Aneinanderfügen keine Knickstellen haben? f) Stellen Sie die Bézierkurve in Matrixschreibweise dar 171

Berechnungsverfahren nach de Casteljau und Fehlerbetrachtungen Der de Casteljau Algorithmus reduziert die Berechnung von Bézier auf einfache Multiplikationen: Die Stützstellen werden für den Fall t = tx (0 < tx 1) im Verhältnis (1 - tx) / tx geteilt und solange wiederholt angewendet, bis Stützstellen einen Punkt auf der Kurve erzeugen. Dieser Punkt ist gleichzeitig Endpunkt für zwei Teilkontrollpolygone: P 0 P 1 P 2 P 3 P 01 P 12 P 23 P 012 P 123 P 0123 172

Beispiel Vervollständigen Sie die Skizze wenn t = ½ ist. Dies sieht möglicherweise zunächst eher nach einer Spielerei aus als nach einem Verfahren, das einen praktischen Nutzen bietet (warum sollte man Bézier-Kurven so teilen?). 173

Fehlerabschätzungen Diese Einschätzung ändert sich allerdings schnell, wenn man überlegt, dass das äquidistante Abtasten des Intervalls von t in [0.. 1] zwar eine Bézier- Kurve erzeugt, die generierten Punkte bzw. die Dichte der generierten Punkte in keiner Weise Steigungsänderungen Rechnung tragen. Der de Casteljau-Algorithmus kann dazu verwendet werden, Punkte auf der Kurve zu erzeugen, die eine vorgegebene Fehlertoleranz gewährleisten und dennoch die Anzahl der generierten Punkte minimiert. Prinzipiell wird immer wieder der de Casteljau angewendet; zu klären ist nur noch, wann dieses Vorgehen terminiert. Eine Schwierigkeit bei der Fehlerabschätzung ist, dass der tatsächliche Punkt auf der Kurve nicht bekannt ist, wenn das Verfahren durchgeführt wird: 174

Fehlerabschätzungen Man geht also so vor, dass man den Fehler etwas gröber abschätzt (nämlich als Abstand von P 1 zu P 0 P 3 bzw. P 2 zu P 0 P 3 ): P1 P2 < flatness P3 P0 P1 175

Das Problem: Abstand Punkt-Gerade (I) L(t) = P + t * v Skalarprodukt verwenden: R Q (R-L(t)) * v = 0 (R P t * v) * v = 0 (R - P ) * v = t * v * v P v t = (R - P) * v / v * v (nicht kürzen; v ist ein Vektor!) t in (I) einsetzen liefert benötigten Punkt auf der Geraden, dann kann dist berechnet werden: dist = R P + ((R - P) * v) / (v * v) * v Alternative Berechnung: Information über die Fläche nutzen... 176

Fehlerabschätzungen P 1 P 3 x P 0 P 3 P 1 P 1 = flatness (P 0 P 3 ) P 1 P 3 x P 0 P 3 liefert die Größe der aufgespannten Fläche; wenn man nun die Fläche des Parallelogramms durch die Länge der einen Seite teilt, erhält man die Länge genau das suchen wir der anderen Seite. Da diese Abschätzung einigermaßen oft erfolgt, sollte die Längenberechnung weiter vereinfacht werden (sie beinhaltet immerhin 2 Multiplikationen und 1 Wurzelberechnung!). Dazu gehen wir zu einer Maximumsabschätzung über und formen die Ungleichung zusätzlich wie folgt um: max { P 1 P 3 x P 0 P 3, P 2 P 3 x P 0 P 3 } = flatness * max { X 3 X 0, Y 3 -Y 0, Z 3 -Z 0 } 177

Bézierflächen Die Überlegungen bzgl. Kurven lassen sich relativ einfach auf Flächen im 3D erweitern. Man betrachtet dann das kartesische Produkt zweier Kurven. für die beiden Richtungen werden dann zwei Gewichtungsfunktionen benutzt: n m P(s, t) = P i,j * B i, n (s) * B j, m (t) i = 0 j = 0 Man hat dann (n+1) x (m+1) viele Kontrollpunkte Für n = m = 3 hat man nun 4 * 4 = 16 Kontrollpunkte. 178

Bézierflächen Hält man einen der beiden Parameter konstant, so erhält man eine Bézierkurve. Insbesondere ist für s = 0 das Ergebnis die bekannte Bézierkurve: m P(0, t) = P i,0 * B j, m (t) j = 0 Auch hier setzt man wieder zur Beschreibung einer Fläche verschiedene Bézier-Flächenstücke zusammen. 179

Bézierflächen Freiformflächen (Bézier-Flächen) Bei den Freiformflächen sind wir nun mit 3D-Daten konfrontiert, die bereits größere Datenmengen in der Visualisierungspipeline erzeugen und (hoffentlich) deutlich machen, welche Schritte zur Visualisierung notwendig sind. Die Freiformfläche wird in kleine Flächenstücke (Patches) zerlegt und solange verfeinert bis das Auge eine glatte, kontinuierliche Oberfläche erzeugt. So werden aus den ursprünglichen 4 x 4 Stützstellen 16*16 = 256 Patches bei einer 16er-Teilung (mit 17 x 17 Punkten) oder möglicherweise sogar noch mehr. Jedem Patch wird eine Farbe zugeordnet. 180

Freiformflächen (I) Ergebnisse der Arbeiten von Matthias Fenner, Susanne Hanst, Matthias Schulze im Sommersemester 2004 181

Freiformflächen (II) Manipulation der Kontrollpunkte 182

Freiformflächen (III) Bézier Spline 183

Abschließende Bewertung Die Vorteile der Bézierapproximation sind intuitiv herleitbare Mathematik (einfache) Definition durch Polynome Patches können einfach (ohne Angabe von Tangentenvektoren) zusammengesetzt werden glättende Wirkung Die Nachteile der Bézierapproximation sind der Grad der Kurve/Fläche und somit der Berechnungsaufwand ist abhängig von der Anzahl der vorgegebenen Stützstellen bei der Veränderung einer Stützstelle ändert sich die gesamte Kurve/Fläche; lokale Änderungen erfordern eine vorherige Segmentierung 184

Splines (I) Eine Verallgemeinerung der Überlegungen durch Splines (Keil, verkeilen) muss zu folgenden Vorteilen führen: Segmentweise Definition von Polynomen Stetigkeit an den Segmentübergängen Erhöhung des Freiheitsgrades ohne Erhöhung des Polynomgrades Leichte Formgebung (wie Bézier) Keine (zusätzliche) Angabe von Tangentenvektoren Glättende Wirkung Lokale Änderungen sollen sich nur lokal auswirken Diese Eigenschaft besitzen die B(asis)-Splines 185

Splines (II) Durch die Betrachtung von Segmenten, kann die entstehende Kurve gut kontrolliert werden Sie ist abschnittsweise definiert Es überlagern sich immer k Segmente (neben der Anzahl und Position der Kontrollpunkt eine weitere Stellgröße) An den Übergängen geht die Kontrolle nahtlos an das nächste Segment über Das Beispiel kann einen Spline 2. Grades oder 3. Grades erzeugen (warum?): P 0 P 1 u 1 u 2 P 3 u4 P 2 u 3 186

B-Splines B-Splines stellen eine Polynombasis für Splines dar. Jeder Spline kann - unter Beachtung einiger Randbedingungen! - durch eine Linearkombination von B-Splines beschrieben werden Ein B-Spline der Ordnung k ist ein stückweise definiertes Polynom vom Grad (k-1), das an den Knoten (Segmentübergängen) (k-2)-mal stetig differenzierbar ist; für k gilt: 2 k anz Die Werte u i der unabhängigen Variablen an den Knoten des Splines sind im Intervall [u 0, u n ] gegeben durch u 0 u 1... u i u i+1... u n U mit (u 0... u n ) heißt Knotenvektor 187

B-Spline Berechnung Ein Punkt ergibt sich durch die folgende Berechnung: n P(u) =Σ P i N k i (u) i = 0 P i sind die Kontrollpunkte oder de Boor Punkte Sie besitzen folgende Eigenschaften Σ N k i (u) = 1 N k i (u) 0 N k i (u) = 0 wenn u [u i, u i+k+1 [ N k i (u) ist k-1 mal stetig differenzierbar 188

Rekursionsformel: Cox de Boor u - u N i,k (u) = i u N i,k-1 (u) + i+k -u N i+1,k-1 (u) u i+k-1 -u i u i+k u i+1 N i,1 (u) = 1 wenn u [u i, u i+1 [ N i,1 (u) = 0 wenn u [u i, u i+1 [ nach Definition gilt: 0 / 0 = 0 Beispiel für i = 0 und k = 3 N 0,3 (u) = ½ (1 u) 2 P 0 + (-u 2 + u + ½ ) P 1 + ½*u 2 P 2 189

B-Spline Funktion und Kurve 0. Grades(I) N i,k (u) 1 N 0,1 (u) N 1,1 (u) N 2,1 (u) N 3,1 (u) etc u 0 u 1 u 2 u 3 u 4 u n P(u) = Σ P i *N i,k (u) i=0 190

B-Spline Funktion und Kurve 1. Grades (II) N i,k (u) 1 N 0,2 (u) N 1, 2 (u) N 2,2 (u) N 3,2 (u) etc u 0 u 1 u 2 u 3 u 4 P P n 1 0 P(u) = Σ P i *N i,k (u) u 1 u 2 i=0 P 3 u 4 u P 2 u 3 191

Uniform B-Splines B-Splines mit einfachen, äquidistanten, ganzzahligen Knoten nennt man uniform B-Splines U = (u 0... u n ) mit u i = i und i [ 0, 1, 2,..., n-1] Sie besitzen periodische Basisfunktionen 192

Beispiel k = 3; n = 4; k = 4; U = {0, 1, 2, 3, 4, 5, 6}; U = {0, 1, 2, 3, 4, 5, 6, 7}; 193

Beispiel n = 4; k = 3; k = 4; U = {0, 1, 2, 3, 4, 5, 6}; U = {0, 1, 2, 3, 4, 5, 6, 7}; Somit ergeben sich für die Beispiele die folgenden Intervalle: u {2,4} u {3,4} 0 1 2 3 4 5 6 0-1 - 2-3 - 4 5 6 7 0 1 + 2 + 3 + 4 5 6 0 1 + 2 + 3 + 4 + 5 6 7 0 1 2 o 3 o 4 o 5 6 0 1 2 o 3 o 4 o 5 o 6 7 0 1 2 3 x 4 x 5 x 6 0 1 2 3 x 4 x 5 x 6 x 7 194

Nonuniform B-Splines (I) B-Splines mit mehrfachen Knoten besitzen keine periodischen Funktionen Soll ein B-Spline mit m+1 Stützstellen und k-ter Ordnung so modelliert werden, dass Anfangs- und Endpunkt von Kontrollpolygon und Kurve zusammenfallen, muss der Knotenvektor folgende Form besitzen: U = (u 0 =u 1 =... = u k-1, u k,u k+1,...,u m,u m+1,= u m+2 =... = u m+k ) k-fach m-k+1 k-fach 195

Nonuniform B-Splines (II) für die u i gilt 0 für i = 0,..., k -1 u i = i k + 1 für i = k,..., n -1 m k + 2 für i = n,..., n + k +1 Der Knotenvektor [0,0,0,0,1,2,..., n-1,n,n,n,n] erzeugt einen kubischen B-Spline (hier: Ordnung 4, Grad 3) Der Knotenvektor [0,0,0,0,1,1,1,1] erzeugt insbesondere eine kubische Bézierkurve, d.h. Bézierkurven können als Sonderfall der B-Splines betrachtet werden! 196

Nonuniform B-Spline 2. Grades Beispiel Approximation mit 3 Stützstellen (Ordnung 3, Grad 2): 197

β-splines β-splines stellen Verallgemeinerungen der kubischen Splines dar Sie enthalten zwei zusätzliche Parameter, mit denen unabhängig vom Knotenvektor und von Stützstellen des Kontrollpolygons die geometrische Form beeinflusst werden kann die beiden zusätzlichen Parameter beschreiben tension (Spannung) - t = 0 keine Spannung - und skew (Abschrägung/Verdrehung) - s = 1 keine Abschrägung - Sie stellen eine besondere Beschreibung der Basis- /Gewichtungsfunktion dar 198

NURBS Non-Uniform Rational B-Splines bei all den Vorteilen der Splines liegt es nahe, zu überlegen, ob mit Splines auch konventionelle Kurven (Kegelschnitte, Zylinder, Paraboloide) beschrieben werden können, um zu einer einheitlichen rechnerinternen Beschreibung zu kommen (unter Ausnutzung homogener Koordinaten!): n P(i,w) = (w i * x i, w i * y i, w i * z i, w i ) P(u) =Σ P i R k i (u) mit Rk i (u) = i = 0 N k i (u) w i Σ N k j (u) w j j=0..n für w i = 1 ist R k i (u) = N k i (u) 199

Spline Flächen Die Beschreibung einer Spline-Fläche sieht genauso aus wie die Beschreibung einer Bézier-Fläche: n m P(s, t) = P i,j * N i, k (s) * N j, l (t) i = 0 j = 0 Bemerkung: der Grad (k und l) der B-Splines hängt nicht von der Anzahl der Stützstellen ab, sondern kann frei gewählt werden! ENDE. 200