800 likes | 954 Views
Graphische Datenverarbeitung. Dr. Markus Heitz. Hinweise. Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: www.ba-stuttgart.de/~mheitz
E N D
Graphische Datenverarbeitung Dr. Markus Heitz
Hinweise • Email: mheitz@ba-stuttgart.de • Informationsmaterial, Powerpoint-Präsentation: www.ba-stuttgart.de/~mheitz • Vorlesungsskript von Prof. Dr. Rudolf Messer: http://www.ba-stuttgart.de/studienangebot/technik/it/ba-intern/vorlesung/gdv/vorles_GDV.htm
Kurven- und Flächendarstellung • Wichtige Forderungen für die Darstellung von Kurven und Flächensind: • Jede gewünschte Form muß mit genügender Genauigkeit darstellbar sein. • Die approximierenden (interpolierenden) Funktionen sollen in Parameterform einzugeben sein. Sie müssen leicht differenzierbar sein, damit die Berechnung von Tangenten und Krümmungen einfach ist. • Affine (lineare) Transformationen (Positionierung, Skalierung, ...) sollten leicht möglich sein.
Splines • Funktionen, die stückweise aus Polynomen bestehen. Ein Spline hat die Ordnung m (Grad m-1), wenn er stückweise aus Polynomen der Ordnung m besteht. • Polynome: • einfach zu berechnen und leicht differenzierbar. • Leider neigen Polynome mit vielen Stützstellen zum Oszillieren. • deshalb verwendet man zweckmäßigerweise stückweise zusammengesetzte Funktionen mit stetigen und glatten Übergängen. • Beispiel: Ein Spline der Ordnung 3 (des Grades 2) besteht stückweise aus Parabeln:
Kubische Splines • Besonders beliebt für Splines: Polynome 3. Grades (kubische Polynome), da • Polynome niedrigeren Grades zu inflexibel sind, d.h. ein Kurvensegment kann dann nicht durch die zwei Endpunkte gehen und gleichzeitig in beiden Endpunkten eine vorgegebene Steigung besitzen • Polynome höheren Grades leicht oszillieren und der Rechenaufwand stark ansteigt. • parametrisierte kubische Kurven die Kurven geringster Ordnung sind, die in drei Dimensionen nicht planar sind (ein Polynom zweiter Ordnung definiert eine Ebene!). • Für spezielle Zwecke: Polynome höherer Ordnung (z.B. aerodynamische Oberflächen, Flugzeugbau)
Interpolation: Lagrange Polynome • ein Polynom möglichst niedrigen Grades, das durch alle Stützpunkte geht. Für n+1 Punkte: Polynom n´ten Grades • Rechenaufwand wächst mit dem Quadrat der Anzahl der Stützstellen, • Polynome neigen zum Überschwingen, insbesondere in der Nähe der Randpunkte.
Interpolation durch kubische Splines • Kubische Splines sind stückweise kubische Polynome, d.h. zwischen zwei Stützpunkte kommt je ein Polynom Si(x) dritten Grades:Si(x) = ai(x- xi)3 + bi(x- xi)2 + ci(x- xi) + di • Die 4 Koeffizienten werden so gewählt, daß die Kurve an allen Übergangsstellen zweimal stetig differenzierbar ist. • Übergangsbedingungen:
Beispiel mit 4 Punkten • Drei Polynome: 12 Unbekannte für i= 1...3 für i= 2, 3 Lineares Gleichungssystem mit 10 Gleichungen: 2 Unbekannte können willkürlich festgelegt werden Beispiel: Natürliche kubische Splines mit
Kubische Splines • Lineares Gleichungssytem mit schnellem Lösungsverfahren • Nachteile: • Jeder Kurvenabschnitt ist von allen Stützpunkten abhängig • kann nicht in Teilkurven zerlegt werden • Vorteile: • Glatte Kurve, zweimal stetig differenzierbar • Geringes Überschwingen
Interpolation nach Akima • Verläßt man die Forderung nach zweimaliger Differenzierbarkeit, so kann die Kurve leichter in Teilbereiche zerlegt werden. Nach dem Verfahren von Akima (Akima-Interpolation) versucht man, durch eine (heuristische) Bestimmung der Koeffizienten eine für das Auge akzeptable Kurve zu erzeugen.
Parameterdarstellung von Kubischen Splines • Jedes räumliche Kurvensegment Si(u) = (x,y,z)(u) eines Splines läßt sich in der Parameterdarstellung folgendermaßen schreiben: xi(u) = aiu3 + biu2 + ciu + di 0 u 1yi(u) = eiu3 + fiu2 + giu + hizi(u) = iiu3 + jiu2 + kiu + li • Mit der Matrix C und dem Vektor T ergibt sich
Parameterdarstellung von Kubischen Splines • Si´(u) ist der Tangentenvektor der Kurve. • Werden zwei Kurvensegmente verbunden, so heißt die Kurve geometrisch stetig. • Sind die Tangentenvektoren in Betrag und Richtung gleich, so ist die Kurve stetig. • Jedes kubische Polynom hat vier Koeffizienten. Damit können insgesamt 4 Größen festgelegt werden. Man unterscheidet demnach: • 2 Endpunkte und 2 Tangentenvektoren: hermitesche Kurven • 2 Endpunkte und 2 weitere Kontrollpunkte, die die Tangenvektoren in den Endpunkten festlegen • 4 Kontrollpunkte, die nicht auf der Kurve liegen: Approximation durch Bezierkurven, Splines
Interpolation mit kubischen Hermite-Polynomen • Polynominterpolation ist nicht darauf beschränkt, Punkte zu interpolieren, sondern man kann auch Ableitungen an den Stützstellen interpolieren. Hermite-Polynome:H0(u) = (1 - u)2(1 + 2u)H1(u) = u (1 - u)2H2(u) = u2 (1 - u)H3(u) = (3 - 2u) u2 • Die Koeffizienten eines damit erstellten Polynom drittes Gradesq(u) = c0H0(u)+ c1H1(u) + c2H2(u) + c3H3(u)können geometrisch gedeutet werden: • Sind zwei Punkte P0, P1 mit den zwei dazugehörigen Tangentenvektoren m0 und m1 zu interpolieren, so ergibt sichq(u) = P0H0(u)+ m0H1(u) + m1H2(u) + P1H3(u)
Approximation von Kurven: Bézier-Kurven • Bernstein-Polynome Eigenschaften: • Sie nehmen im Intervall [0,1] keine negativen Werte an. • Die Summe der Werte über alle Polynome ist immer gleich eins. • Jedes Polynom besitzt im Intervall genau ein Maximum (Grad > 0). • Die Maxima sind gleichabständig über das Intervall [0,1] verteilt. • Bezier-Kurve: mit den n+1 Stützstellen
Bézier-Kurve mit vier Stützstellen Beispiel, kubische Bézier-Kurve: P0 = (0, 0) P1 = (2, 4) P2 = (6, 4) P3 = (4, 4) Allgemein: Ordnung = Zahl der Stützpunkte - 1
Eigenschaften der Bézier-Darstellung • Die ersten beiden beziehungsweise die letzten beiden Punkte bestimmen die Tangenten am Anfang beziehungsweise am Ende. • Die Kurve verläuft im Innern der konvexen Hülle aller Kontrollpunkte. • Die affine Transformation einer Kurve erhält man durch affine Transformation ihrer Kontrollpunkte. • In CAD-Programmen: Kontrolle der Form durch verschieben der Stützpunkte und verändern der Tangentenvektoren • Weit verbreitet (auch für Flächendarstellung) • Nachteil: Es ist schwierig, die Tangenten benachbarter Flächen aneinander anzupassen.
Bézier-Splines • Splines deren Segmente aus Bézier-Polynomen besteht. • Meist kubische Bézierkurven.
B-Splines • Gleiche Struktur wie Bézier-Kurven • Aber: schnell abfallende Gewichtsfunktionen Ni,m (u) anstatt Bi,n (t) • Kein globaler Einfluß aller Stützstellen mehr. • Maximaler Grad der Kurve gering. • Resultat:Der Einfluß jeder Stützstelle Pi wird auf einen Bereich in der Umgebung der Stützstelle beschränkt. mit
B-Splines • Aufteilung der Kurve in Teilstücke (Segmente). • Äquidistanter Knotenvektor für Spline der Ordnung m: T = (t0 , ... ,tn+2*(m-1)) 0 für j<mfür tj gilt j = 0 ... n+2*(m-1) tj= (j-m+1)/n für m <=j<n+m-1 1 für j>=n+m-1 • Beispiel: m=3, n=5 (6 Stützpunkte)T = (0, 0, 0, 0.2, 0.4, 0.6, 0.8, 1, 1, 1)
B-Splines: Gewichtsfunktionen • Die Gewichtsfunktionen Ni,m (u) von der Ordnung m (Grad m-1) sind stückweiserekursiv definiert:Ordnung m=1: Ni,m(u) =Ordnung m>1: 1 für ti u ti+1 0 sonst
B-Splines: Gewichtsfunktionen • Beispiel, m=2:eingesetzt: für ti u ti+1 für ti+1 u ti+2 sonst
B-Splines m=3 • Für m=3 ergeben sich die quadratischen B-Splines: eingesetzt: für ti u ti+1 für ti+1 u ti+2 für ti+2 u ti+3 sonst
Gewichtsfunktionen der quadratischen B-Spline-Approximation • Gewichtsfunktionen der quadratischen B-Spline-Approximation (m=3) für 5 Punkte (n=4),T = (0,0,0,0.25,0.5,0.75,1.0,1.0,1.0) • Die Summe aller Gewichtsfaktoren ergibt für jeden Wert t stets 1. Da am Anfangs- und Endpunkt jeweils nur eine einzige Gewichtsfunktion ungleich Null ist, wird der Anfangs- und der Endpunkt immer exakt getroffen.
B-Splines mit m=2,...,7 • Je größer m desto weiter von den Stützstellen entfernt. • m=2: Polygonzug durch die Stützpunkte (äußere Kurve)
Eigenschaften von B-Splines • Die Kurve verläuft im Intervall zwischen zwei Knoten innerhalb der konvexen Hülle der zugehörigen p+1 Kontroll-unkte (Ordnung p). • Keine Ebene hat mehr Durchstoßpunkte mit der Kurve als mit dem Polygon der Kontrollpunkte. • Die affine Transformation einer Kurve erhält man durch die affine Transformation ihrer Kontrollpunkte. • Wenn ein Kontrollpunkt verändert wird, so beeinflußt er nur p+1 Knotenintervalle (Ordnung p). • Eine B-Spline-Kurve kann durch Einfügen von Vielfachknoten exakt in eine Folge von Bézierdarstellungen überführt werden.
Non-Uniform B-Splines • Uniform B-Splines (UBS) bezeichnet: Die Knoten liegen gleichabständig, was bei gleichmäßig verlaufenden Kurven eine gute Lösung darstellt. • Non-Uniform B-Splines (NUBS): beliebige Knotenfolgen, die errechnet oder vom Benutzer vorgegeben werden können: • Damit ist eine bessere Anpassung an wechselnde Verhältnisse • präzisere Kontrolle der Form • Darstellung einer wesentlich umfangreicheren Klasse von Formen möglich.
UBS der Ordnung 3 (Grad 2: Parabeln) mit 7 Stützpunkten • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.4,0.6,0.8,1,1,1) • Eigenschaften dieser UBS 3. Ordnung: • Die Kurve besteht stückweise aus Polynomen der Ordnung 3 (Parabeln). • Die Knoten sind (gemessen im Parameterwert t) gleichabständig. • An den Knoten ist die Kurve punktstetig und tangentenstetig. • Das Polygon ist in allen Knoten Tangente an die Kurve (dies gilt nur für die Ordnung 3). • Die inneren Knoten liegen genau in der Mitte zwischen zwei Kontrollpunkten.
Vergleich UBS - NUBS • UBS: • In Anwendungsprogrammen kann im allgemeinen jeder beliebige Pol des UBS angefaßt und in seiner Lage interaktiv verändert werden. • Die Veränderung macht sich jeweils über m, hier also 3 Knotenintervalle bemerkbar, d.h. z.B. beim Pol P3 zwischen 0.2 < u < 0.8. • NUBS: • Bei einem NUBS wird gegenüber einem UBS die Forderung, daß der Knotenabstand bei den inneren Knoten (gemessen im Parameterwert u) gleichabständig ist, fallengelassen und es werden beliebige Knotenwerte zugelassen. • Es darf kein innerer Knoten öfter als zweifach auftreten. • Durch Variation eines inneren Knotens verschiebt sich der Punkt, in dem das Polygon Tangente an die Kurve ist. Das Polygon bleibt erhalten.
NUBS der Ordnung 3 mit 7 Stützpunkten • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.4,0.5,0.8,1,1,1) • Wie UBS, aber anderer Knotenvektor: Das Verschieben des Knotens von u = 0.6 nach u = 0.5 vergrößert den Parabelabschnitt zwischen den beiden Knoten 0.5 und 0.8. Das Polygon bleibt in den Knoten Tangente an die Kurve.
NUBS: Doppelter Knoten • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.5,0.5,0.8,1,1,1). • Durch das Verschieben des Knotens u = 0.4 nach u = 0.5 und des Knotens u = 0.6 nach u = 0.5 entsteht bei t = 0.5 ein doppelter Knoten und ein Parabelabschnitt verschwindet. Der NUBS ist bei u = 0.5 nicht tangentenstetig, sondern besitzt dort einen Knick. Bei NUBS ist es also möglich, einen Knick im Inneren einer Kurve zu erzeugen
Rationale Darstellungen: URBS und NURBS • Der Kreis ist durch parametrische Polynome nicht exakt darstellbar ist und damit auch nicht durch Bézier- oder B-Spline-Formen. • Kreissegmente müssen immer approximiert werden. • Erweiterung auf rationale Formen: Kurvenpunkt als Quotient zweier Polynomdarstellungen • Kreisdarstellung:
Rationale Darstellungen: URBS und NURBS • Kegelschnittsegmente:Die Pi sind Punkte auf dem Kegelschnitt. • Der Gewichtsfaktor g1 bestimmt, um welchen Kegelschnitt es sich handelt: • g1 < 1 : Ellipse (Sonderfall: Kreis) • g1 = 1 : Parabel • g1 > 1 : Hyperbel • Mit rationalen Funktionen können alle Arten von Kegelschnitten und Kegelschnittsegmenten dargestellt werden. • Realisierung in der Software ohne eine Vielzahl von Fallunterscheidungen
mit URBS und NURBS • Bei rationalen B-Splines wird jedem Kontrollpunkt (Stützpunkt, Pol) pi ein Gewichtsfaktor gi zugeordnet. • Nicht rationale B-Splines gehen aus den rationalen hervor, indem alle Gewichte = 1 gesetzt werden.. • Pole mit Gewichten größer als 1 ziehen die Kurve zu sich heran. • Pole mit Gewichten kleiner als 1 stoßen die Kurve von sich ab. • Bei Gewichten gleich 1 ergibt sich der normale Verlauf.
URBS • Variation eines Gewichts
URBS Beispiel: Ordnung 3 mit 7 Stützpunkten • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.4,0.6,0.8,1,1,1)Gewichtsvektor: G = (1,1,1,2,0.2,1,1) • URBS mit gleichem Polygon und den gleichem Knotenvektor wie UBS, aber: Gewichte != 1 • P3 mit dem Gewicht 2 zieht die Kurve zu sich heran. • P4 mit dem Gewicht 0.2 stößt die Kurve von sich ab. • Die Kurve ist in den Knoten tangentenstetig. • Das Polygon bleibt in den Knoten Tangente an die Kurve.
NURBS Beispiel: Ordnung 3 mit 7 Stützpunkten • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.4,0.75,0.8,1,1,1)Gewichtsvektor: G = (1,1,1,2,0.2,1,1) • Der Knotenvektor ist gegenüber dem letzten Beispiel verändert. Diese Kurve ist jetzt non-uniform, also ein NURBS.
NURBS Beispiel: Gewichtsvektor verändert • Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6Knotenvektor: T = (0,0,0,0.2,0.3,0.7,0.8,1,1,1)Gewichtsvektor: H = (1,1,1,0.2,1,1,1) • Der Gewichtsvektor wurde verändert: • P3 hat das Gewicht 0.2 und stößt die Kurve von sich ab. • Das Verschieben des Knotens t = 0.4 nach t = 0.3 (bzw. t = 0.6 nach t = 0.7) vergrößert den Kurvenabschnitt zwischen den beiden Knoten.
NURBS: Eigenschaften • NURBS sind die am weitesten entwickelten Splines, die in CAD-Systemen Anwendung finden. • NURBS können modifiziert werden durch • Verändern der Koordinaten der Pole • Verändern des Knotenvektors • Einfügen neuer Knoten • Verändern der Gewichte der Pole • Mit diesen Möglichkeiten werden NURBS auch extremen Design-Anforderungen gerecht.
Vergleich der Kurvendarstellungen • Bei einer Beschränkung auf parametrisierte kubische Kurven können die Darstellungen ineinander konvertiert werden. • Für die interne Darstellung können z.B. NURBS benutzt werden, während der Benutzer interaktiv die Kontrollpunkte und Tangentenvektoren von Bézier- oder hermiteschen Kurven manipuliert. • Bei der Ausgabe über Postscript-Geräte müssen die Kurven auf jeden Fall in die Bézierform umgewandelt werden. • Der Benutzer eines interaktiven CAD-Systems hat im allgemeinen mehrere Formen zu Auswahl, während intern in neueren Systemen meist die NURBS-Darstellung benutzt wird.
Flächen: Quadriken • Die implizite Flächengleichung:f(x,y,z)= ax2 + by2 + c z2 + 2dxy +2eyz + 2fxz + 2gx +2hy +2jz +k =0definiert die Familie der quadratischen Flächen oder Quadriken • Einheitskugel um den Ursprung: a=b=c=-k=1 und d=e=f=g=h=j=0 • Ebene: a=b=c=d=e=f = 0 • Einfache Berechnung der Flächennormalen • Einfache Berechnung von Schnittpunkten zweier Flächen • Einfache Translation und Skalierung
Flächen • Patches: größere Flächen werden aus kleinen Teilen (Segmente, Pflaster) zusammengesetzt. • Kantenfreies Aneinanderfügen von Pflastern: beim Zusammensetzen muß ein kontinuierlicher Übergang erzeugt werden, ohne daß ein Knick in der Steigung senkrecht zur Randkurve benachbarter Pflaster auftritt • Die Methoden zur Flächenbildung entsprechen den Methoden für Kurven. • Flächendarstellungen: • Interpolation • Bézier-Approximation • B-Spline-Approximation
Paramaterdarstellung von Flächen • Die Parameterdarstellung einer Fläche: • Randkurven der Fläche: (0,v), (1,v), (u,0) und (u,1)
Flächenapproximation mit Dreieckselementen • Approximation einer Fläche durch ein Netz von Dreieckselementen. • Punkte innerhalb der Dreiecksfläche durch Interpolation der Eckpunkte:F(u,v) = u p1 + v p2 + (1-u-v) p3 mit 0(u + v)1 • Eckpunkte: F(1,0) = p1F(0,1) = p2F(0,0) = p3 • Begrenzungslinien: Strecke p1p3:F(u,0) Strecke p2p3: F(0,v) Strecke p1p2: F(u,1-u)
Approximation durch Dreiecke • Vorteile: • Alle Punkte des Dreiecks liegen auf einer Ebene -> einfache Operationen. • Sehr einfache Flächendefinition. Operationen mit Flächen (z.B. Schnitte) sind durch einfache Algorithmen realisierbar. • Nachteile: • Großer Speicherbedarf für das Dreiecksnetz • Hoher Rechenaufwand der Flächenoperationen.