1 / 80

Graphische Datenverarbeitung

Graphische Datenverarbeitung. Dr. Markus Heitz. Hinweise. Email: mheitz@ba-stuttgart.de Informationsmaterial, Powerpoint-Präsentation: www.ba-stuttgart.de/~mheitz

leanne
Download Presentation

Graphische Datenverarbeitung

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Graphische Datenverarbeitung Dr. Markus Heitz

  2. 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

  3. 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.

  4. 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:

  5. 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)

  6. 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.

  7. 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:

  8. 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

  9. 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

  10. 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.

  11. 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

  12. 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

  13. 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)

  14. 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

  15. 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

  16. Bézier-Kurve mit vier Stützstellen

  17. Gewichtsfunktionen der Bézier-Approximation für n= 2,3,4

  18. 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.

  19. Bézier-Splines • Splines deren Segmente aus Bézier-Polynomen besteht. • Meist kubische Bézierkurven.

  20. 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

  21. 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)

  22. 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

  23. B-Splines: Gewichtsfunktionen • Beispiel, m=2:eingesetzt: für ti u  ti+1 für ti+1 u  ti+2 sonst

  24. B-Splines: Gewichtsfunktionen

  25. 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

  26. Gewichtsfunktionen der quadratischen B-Spline-Approximation

  27. 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.

  28. 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)

  29. 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.

  30. 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.

  31. 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.

  32. 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.

  33. 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.

  34. 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

  35. 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:

  36. 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

  37. 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.

  38. URBS • Variation eines Gewichts

  39. 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.

  40. 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.

  41. 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.

  42. 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.

  43. 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.

  44. 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

  45. 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

  46. Paramaterdarstellung von Flächen • Die Parameterdarstellung einer Fläche: • Randkurven der Fläche: (0,v), (1,v), (u,0) und (u,1)

  47. 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)

  48. 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.

More Related