Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Graphische Datenverarbeitung

Ähnliche Präsentationen


Präsentation zum Thema: "Graphische Datenverarbeitung"—  Präsentation transkript:

1 Graphische Datenverarbeitung
Dr. Markus Heitz

2 Hinweise Informationsmaterial, Powerpoint-Präsentation: Vorlesungsskript von Prof. Dr. Rudolf Messer:

3 Kurven- und Flächendarstellung
Wichtige Forderungen für die Darstellung von Kurven und Flächen sind: 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

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

9 Beispiel mit 4 Punkten Drei Polynome: 12 Unbekannte für i= 1...3
Lineares Gleichungssystem mit 10 Gleichungen: 2 Unbekannte können willkürlich festgelegt werden Beispiel: Natürliche kubische Splines mit

10 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

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

12 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  1 yi(u) = eiu3 + fiu2 + giu + hi zi(u) = iiu3 + jiu2 + kiu + li Mit der Matrix C und dem Vektor T ergibt sich

13 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

14 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)2 H2(u) = u2 (1 - u) H3(u) = (3 - 2u) u2 Die Koeffizienten eines damit erstellten Polynom drittes Grades q(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 sich q(u) = P0H0(u) + m0H1(u) + m1H2(u) + P1H3(u)

15 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

16 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

17 Bézier-Kurve mit vier Stützstellen

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

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

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

21 B-Splines mit 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

22 B-Splines Aufteilung der Kurve in Teilstücke (Segmente).
Äquidistanter Knotenvektor für Spline der Ordnung m: T = (t0 , ... ,tn+2*(m-1)) für j<m für tj gilt j = n+2*(m-1) tj= (j-m+1)/n für m <=j<n+m 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)

23 B-Splines: Gewichtsfunktionen
Die Gewichtsfunktionen Ni,m (u) von der Ordnung m (Grad m-1) sind stückweise rekursiv definiert: Ordnung m=1: Ni,m(u) = Ordnung m>1: 1 für ti  u  ti+1 0 sonst

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

25 B-Splines: Gewichtsfunktionen

26 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

27 Gewichtsfunktionen der quadratischen B-Spline-Approximation

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

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

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

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

32 UBS der Ordnung 3 (Grad 2: Parabeln) mit 7 Stützpunkten
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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.

33 Vergleich UBS - NUBS UBS: NUBS:
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.

34 NUBS der Ordnung 3 mit 7 Stützpunkten
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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.

35 NUBS: Doppelter Knoten
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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

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

37 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

38 URBS und NURBS mit 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.

39 URBS Variation eines Gewichts

40 URBS Beispiel: Ordnung 3 mit 7 Stützpunkten
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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.

41 NURBS Beispiel: Ordnung 3 mit 7 Stützpunkten
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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.

42 NURBS Beispiel: Gewichtsvektor verändert
Kontrollpunkte (Pole): P0, Pl, P2, P3, P4, P5, P6 Knotenvektor: 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.

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

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

45 Flächen: Quadriken Die implizite Flächengleichung: f(x,y,z)= ax2 + by2 + c z2 + 2dxy +2eyz + 2fxz + 2gx +2hy +2jz +k =0 definiert 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

46 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

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

48

49 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) = p1 F(0,1) = p2 F(0,0) = p3 Begrenzungslinien: Strecke p1p3: F(u,0) Strecke p2p3: F(0,v) Strecke p1p2: F(u,1-u)

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

51 Flächenapproximation durch Vierecksflächen
Verwendet ein Netz von Vierecksflächen Bilineare Interpolation zwischen den Eckpunkten: F(u,v) = (1-u)(1-v) p1 + (1-u)v p2 + u(1-v) p3 + u v p4 mit 0 u,v 1 Eckpunkte: F(0,0) = p1, F(0,1) = p2 F(1,0) = p3, F(1,1) = p4 Begrenzungslinien: p1 p2 : F(0,v) p1 p3 : F(u,0) p2 p4 : F(u,1) p3 p4 : F(1,v)

52 Flächenapproximation durch Viereckflächen
Flächenelemente können gekrümmt sein, denn 4 Punkte müssen nicht in einer Ebene liegen Für eine gleich gute Approximation werden weniger Flächenelemente als bei den Dreieckselementen benötigt. Der Speicherbedarf nimmt ab Der Aufwand zur Berechnung von geometrischen Operationen nimmt zu.

53 Freiformflächen: Coons´sche Flächen
Coons 1967: Methode zur Bildung von Freiformflächen: Zwischen 4 Randkurven R(u,0), R(u,1), R(0,v) und R(1,v) wird ein Flächenelement aufgespannt. Fläche F1(u,v): lineare Interpolation zwischen R(0,v) und R(1,v) F1(u,v) = (1-u) R(0,v) + u R(1,v) Fläche F2(u,v): lineare Interpolation zwischen R(u,0) und R(u,1) F2(u,v) = (1-v) R(u,0) + v R(u,1) Fläche G(u,v): bilineare Interpolation zwischen den Eckpunkten G(u,v) = (1-u)(1-v) p1 + (1-u)v p2 + u(1-v) p3 + uv p4 Coons´sche Fläche: C(u,v) = F1(u,v) + F2(u,v) - G(u,v)

54 Freiformflächen: Coons´sche Flächen

55 Freiformflächen: Bézier-Flächen
Bézier-Flächen: Erweiterung des Konzeptes der Bézier-Kurven auf den Raum. Die Eckpunkte eines Flächenstücks liegen fest, während die anderen Punkte die Fläche nur approximieren. Durch eine (n+1)(m+1)-Matrix von Stützpunkten pi,j wird eine Bézier-Fläche aufgespannt durch F(u,v) = pi,jBi,n(u)Bj,m(v) mit 0 u,v 1 und Bi,n (u) = ui(1-u)n-i Bj,m (v) = vj(1-v)m-j Bi,n (u) bzw. Bj,m (v) sind die Bernstein-Polynome. Bézier-Flächen sind das kartesische Produkt von Bézier-Kurven.

56 Freiformflächen: Tensorprodukt-Flächen
Das gleiche Prinzip ist auf B-Splines und NURBS anwendbar F(u,v) = pi,jNi,n(u)Nj,m(v) mit 0 u,v 1 Je nach Typ der Gewichtsfunktionen Nj,m(v) und Ni,n(u) ergeben sich B-Splines oder NURBS Gewichtsfunktionen Nj,m(v) und Ni,n(u) müssen nicht gleicher Ordnung sein B-Splines häufig verwendet, aber einfachere Flächen wie z.B. Zylinder können nicht genau nachgebildet werden NURBS: jede Fläche darstell- bar, aber hoher Rechenauf- wand

57 Koordinatensysteme und Transformationen: Homogene Koordinaten
Das dreidimensionale Koordinatensystem (x, y, z) wird durch die Koordinate w erweitert Das Quadrupel (x, y, z, w) stellt die homogenen Koordinaten des Punkts P = (x/w, y/w, z/w) dar Standarddarstellung: w = 1, P=(x, y, z) => (x, y, z, 1) Überführen in die Standarddarstellung: Teile durch w Vorteile: Transformationen (Drehung, Verschiebung, Skalierung) können als Matrix dargestellt werden Hintereinanderausführung von beliebigen Transformationen durch Matrix-Multiplikation

58 Translation in Homogenen Koordinaten
Verschiebung des Punktes P=(x, y, z) um den Vektor (a, b, c) mit P’= (x’, y’, z’): P’=P*T(a, b, c) wobei Hintereinanderausführung: T(a1, b1, c1)*T(a2, b2, c2) = T(a1+ a2, b1+ b2 , c1+ c2)

59 Skalierung in Homogenen Koordinaten
Skalierung des Punktes P=(x, y, z) um die Faktoren (a, b, c) mit P’= (x’, y’, z’): P’=P*S(a, b, c) wobei Hintereinanderausführung: S(a1, b1, c1)*S(a2, b2, c2) = S(a1*a2, b1*b2 , c1*c2)

60 Drehungen in homogenen Koordinaten: z-Achse
Rechtshändiges Koordinatensystem: Drehung mit dem Winkel a um die z-Achse gegen den Uhrzeigersinn: P’ = Rz(a)*P mit y P x

61 Händigkeit Rechtshändiges Koordinatensystem: z y
Linkshändiges Koordinatensystem: y x z x y z

62 Drehungen in homogenen Koordinaten: y-Achse
Drehung mit dem Winkel b um die y-Achse: P’ = Ry(b)*P mit

63 Drehungen in homogenen Koordinaten: x-Achse
Drehung mit dem Winkel g um die y-Achse: P’ = Rx(g)*P mit

64 Kombination von Transformationen
Transformationen können durch Hintereinanderausführung kombiniert werden. Beispiel: Rotation um mehrere Achsen: R = Rx . Ry . Rz Achtung: A.B ist nicht notwendigerweise gleich B.A. Soll die Rotation nicht um den Ursprung sondern um einen anderen Punkt stattfinden, so verschiebt man das Rotationszentrum in den Ursprung, führt die Rotation durch und verschiebt das Rotationszentrum wieder zurück: P´ = T-1.R.T.P T-1 ist die inverse Transformationsmatrix: T . T-1 = 1 wobei 1 die Einheitsmatrix darstellt.

65 Transformation des Koordinatensystems Beispiel: Drehungen um die z-Achse
Drehung mit dem Winkel a um die z-Achse gegen den Uhrzeigersinn: P’ = Rz(a)*P mit y P x

66 Projektionen: Parallelprojektion
Zur Darstellung müssen die dreidimensionalen Objekte auf die 2D-Ebene des Bildschirms projiziert werden. Senkrechte Projektion auf eine Ebene, die zu einer der Ebenen, die die Koordinatenachsen aufspannen, parallel ist. In Matrixschreibweise ergibt sich für die Abbildung auf die Ebene z = 0:

67 Perspektivische Projektion
Perspektivische Projektion auf eine Ebene parallel zu den Koordinatenachsen (Blickpunkt A(0,0,-Z0), Ebene z=0): x´ = x/(1+z/Z0) y´ = y/(1+z/Z0) z´ = 0 oder (/w)

68 Viewing Pipeline: Perspektivprojektion von Weltkoordinaten zum Schirmbild

69 Parallelprojektion von Weltkoordinaten zum Schirmbild

70 Viewing Pipeline Bis zu 5 Koordinatentransformationen hintereinander Viewing pipeline: Composite modelling transformation Local modelling transformation Global modelling transformation World Coordinates WC Optional: modelling clipping View orientation transformation View Reference Coordinates VRC View mapping transformation View Clip Normalized Projection Coordinates NPC Workstation transformation Workstation clip Device Coordinates DC

71 Viewing Pipeline: CMT Composite modelling transformation (CMT) -> World Coordinates (WC): Transformation von Modellkoordinaten in Weltkoordinaten, besteht aus zwei Teiltransformationen: Local modelling transformation Die lokalen Koordination eines Objekts werden transformiert (z.B. wird eine Diode in einer Schaltung zweimal eingebaut, einmal in der ursprünglichen Lage und einmal um 900 gedreht) Global modelling transformation Alle lokalen Objekte werden in Weltkoordinaten überführt. Optional: modelling clipping Zur Reduzierung der Rechenzeit können Objekte eliminiert oder reduziert werden. Alles außerhalb des view volume wird entfernt.

72 Viewing Pipeline: Viewing Orientation Transformation
Viewing orientation transformation (V0) -> View Reference Coordinates (VRC) Die drei Achsen u, v und n des VRC: Die Projektionsebene (view plane) ist immer parallel zur uv-Ebene. Ursprung: Blickreferenzpunkt (view reference point, VRP) n-Achse: view plane normal, VPN, Normalenvektor zur Projektionsebene (Verbindung Auge-VRP) view up vector (VUV): „oben“ auf dem Bildschirm v-Achse: Projektion des VUV-Vektors auf die Projektionsebene. (VPN und VUV dürfen niemals parallel sein) u-Achse: Kreuzprodukt von v und n

73 VPN und VUV

74 Viewing Mapping Transformation
Viewing mapping transformation (Vm ) -> Normalized Projection Coordinates (NPC) Im NPC liegen alle sichtbaren Punkte im Einheitswürfel des ersten Oktanten (0<=x,y,z<=1) Benötigte Daten: Entfernung der Projektionsebene auf der N-Achse (view plane distance) wird häufig gleich Null gewählt, d.h. view plane und UV-Ebene fallen zusammen. Projection reference point, PRP. Wandert der PRP ins Unendliche, so erhalten wir eine Parallelprojektion. Front plane distance, back plane distance View Clip: Alles außerhalb des sichtbaren Kegelstumpfes entfernen.

75 View Mapping Transformation

76 Workstation Transformation and Clip
Workstation transformation and clip (W) -> Device Coordinates (DC) 2D-Transformation auf die wirklichen Gerätekoordinaten. Die Skalierung der Achsen kann bedingt durch die Hardware oder den Wünschen des Benutzers (Verzerrung, Scherung) durchaus verschieden sein. Vor jeder Transformation kann ein Clipping-Prozeß vorgenommen werden, bei der letzten Transformation auf das Workstation Window ist er unbedingt nötig.

77 Viewing Pipeline: Transformationsmatrix
Die gesamte Transformationsmatrix ergibt sich zu T = W Vm Vo CMT

78 Größe eines Objekts auf der Projektionsebene
Die Größe eines Objekts auf der Projektionsebene ist von den relativen Positionen des Fluchtpunkts (PRP, projection reference point), des Objekts und der Projektionsebene abhängig.

79 Double Buffering Zwei Frame-Buffer zur Darstellung von bewegten Bildern: Ein Frame-Buffer wird zur Bilddarstellung benutzt Im Hintergrund wird das nächste Bild berechnet und im 2. Frame Buffer abgelegt Nach Ende der Rechnung wird der zweite Frame-Buffer der aktive.

80 Ablauf der Bildschirmdarstellung


Herunterladen ppt "Graphische Datenverarbeitung"

Ähnliche Präsentationen


Google-Anzeigen