6. Koordinaten, Transformationen, Perspektive
Bei Grafik-Applikationen sind neben Modellierung der darzustellenden Objekte und Algorithmen zum Zeichnen auch Manipulationsmöglichkeiten von großer Bedeutung:
Behandlung von Transformationen mittels vektorieller Geometrie (lineare Algebra)
Die meisten wichtigen Transformationen sind mathematisch lineare Abbildungen:
Eigenschaft: f(cx+y) = c f(x) + f(y)
Eine lineare Abbildung ist vollständig bekannt, wenn die Bilder der Vektoren einer Basis
bekannt sind (z.B. die Bilder der Standard-Basisvektoren ).
Darstellung der linearen Abb. f durch ihre zugehörige Matrix Mf:
in den Spalten von Mf stehen die Bilder der Standard-Basisvektoren unter f.
Allgemein besteht eine Matrix aus p
´ q Skalaren mij .Anwendung einer linearen Abbildung f auf einen Vektor
durch Multiplikation der Matrix Mf mit
dem Vektor
(dabei Schreibweise des Vektors als Spaltenvektor und Multiplikation der Matrix von links an den
Vektor wichtig!):
Nacheinander-Anwendung (Komposition) zweier linearer Abbildungen f
° g: wende erst g an, dann f.f
° g (x) = f(g(x))Die Komposition wird beschrieben durch das Produkt der zugehörigen Matrizen:
Mf
° g = Mf × Mgmit
Beachte: Das Matrizenprodukt ist nichtkommutativ
(d.h. i. allg. ist N
Lineare Abbildungen eines Vektorraums (z.B. des R2) in sich selbst heißen auch Endomorphismen. Darstellung durch n
´ n-Matrizen (n = Dimension des Vektorraumes).Die regulären n
´ n-Matrizen (bzw. die Automorphismen des Rn) bilden eine Gruppe, die allgemeine lineare Gruppe GL(n).(math. Begriff der Gruppe:
(hier die Einheitsmatrix
Beispiele für bijektive lin. Abbildungen: Drehungen um den Nullpunkt, zentrische Streckungen mit einem Faktor
¹ 0 vom Nullpunkt aus.Wichtiger Spezialfall der bijektiven lin. Abb.:
orthogonale Abbildungen.
Entsprechend: orthogonale Matrizen.
M orthogonal
Û MT× M = E (d.h. die Transponierte ist die Inverse)Für alle orthogonalen Matrizen hat ferner die Determinante den
Betrag 1.
(Die Umkehrung gilt nicht: Beispiel Scherungsmatrizen.)
Die orthogonalen n
´ n-Matrizen bilden eine Untergruppe von GL(n), die orthogonale Gruppe O(n).Es gilt:
M
Beispiele:
Einschränkung: für jede lineare Abbildung f gilt (Nullpunkt ist Fixpunkt).
wichtige Transformationen, die nicht zu den linearen Abbildungen gehören:
Translationen (Verschiebungen).
Verschiebungen rechnerisch:
v' = t(v) = v + dt, d.h. Addition eines konstanten Vektors
dt.
Affine Abbildungen:
alle Abbildungen a, die sich darstellen lassen als
a(v) = f(v) + d mit einer linearen Abbildung f,
d.h. als Komposition einer linearen Abb. und einer Translation.
Es gilt: d = a(0), f(v) = a(v) - a(0)
Þ f und d sind eindeutig bestimmt.Beispiele:
usw.
(lineare Abbildungen und Translationen als Spezialfälle mit enthalten!)
Die bijektiven affinen Abbildungen des Rn in sich bilden eine Gruppe, die affine Gruppe Aff(n).
Eine affine Abb. a heißt Bewegung oder Kongruenzabbildung, wenn ihre
zugehörige lineare Abbildung f orthogonal ist,
und eigentliche Bewegung, wenn f sogar in SO(n) liegt.
Beispiele:
Drehungen, Schraubungen, Translationen: eigentliche Bewegungen
Spiegelungen, Drehspiegelungen: uneigentliche Bewegungen
Streckungen: keine Bewegungen, da f(v) =
c
Bew(n): Gruppe der Bewegungen des Rn (= Untergruppe von Aff(n))
Bew+(n): Untergruppe der eigentlichen Bewegungen.
Eine Ähnlichkeitsabbildung ist eine affine Abb. a, die Abstände stets
um einen festen Faktor c > 0 verändert:
d(a(u), a(v)) = c
Ähnlichkeitsabbildungen liegen "zwischen" den affinen Abbildungen und den Kongruenzabbildungen
(Bewegungen)
(für Bewegungen ist c = 1).
Jede Ähnlichkeitsabb. hat die Form a(v) = c
× M × v + d mit einer orthogonalen Matrix M und c > 0.Ae(n): Gruppe der Ähnlichkeitsabb. des Rn.
Beispiele: Streckungen, Streckspiegelungen, Drehstreckungen.
Untergruppen-Diagramm:
Man kann affine Abbildungen aus bestimmten Grundoperationen zusammensetzen
Beispiel: Drehung um einen beliebigen, vorgegebenen Punkt P im R2
Man benötigt für Bewegungen im R2:
im R3:
Wichtige Grundoperationen im R2 sind somit:
(a) Translationen
v' = v + d
(b) Drehungen (Rotationen)
q ist der Drehwinkel
Orientierung im math. positiven Sinne (gegen den Uhrzeigersinn)
Angabe manchmal auch in Bogenmaß:
Winkel [Bogenmaß] = Winkel [Grad] × p / 180.
(c) Spiegelungen
Spiegelung an der x-Achse:
Vorzeichenwechsel in der y-Koordinate
also
Spiegelung an der y-Achse:
analog,
(d) Skalierungsoperationen
oft mit unterschiedlichen Skalierungsfaktoren in x- und in y-Richtung gebraucht
(keine Kongruenzabb.!):
Proportionen und Winkel bleiben nur erhalten, wenn sx
= sy
(dann liegt eine Ähnlichkeitsabb. vor)
andernfalls Verzerrung des abgebildeten Objekts:
Manchmal benötigt man auch
(e) Scherungen (engl.: shear)
Scherungen sind flächenerhaltend, aber nicht orthogonal
(Figuren werden verzerrt).
Matrix einer Scherung in x-Richtung:
für die y-Richtung analog.
Im R3 analoge Grundoperationen;
Rückführung einer Drehung um eine beliebige Achse AB mit Winkel
q auf diese Grund-Drehungen:
1. |
Translation der Achse um -A zum Nullpunkt |
T-A |
2. |
Rotation der Drehachse r in die yz-Ebene |
Ry,- a |
3. |
Rotiere die Drehachse auf die z-Achse |
Rx, b |
4. |
Rotiere um die z-Achse mit Winkel q |
Rz, q |
5. |
Invertiere Transformation von Schritt 3 |
Rx,- b |
6. |
Invertiere Transformation von Schritt 2 |
Ry, a |
7. |
Invertiere Transformation von Schritt 1 |
TA |
Veranschaulichung der Schritte 2 und 3. r ist der Richtungsvektor der Rotationsachse, um die die Rotation erfolgen soll. Links: Drehung um die y-Achse, die r in die yz-Ebene dreht (Ergebnis r'). Rechts: Drehung von r' um die x-Achse, so dass er in Richtung der positiven z-Achse zeigt.
Die Winkel
a und b lassen sich durch trigonometrische Beziehungen aus den Koordinaten von A und B berechnen.Koordinatentransformationen
Oft muss man von einem Koordinatensystem in ein anderes umrechnen
Beispiel:
Weltkoordinaten
Koordinatentransformation: komplementär zur Transformation von Objekten
Objekttransformation: |
Objekt ändert seine Lage (und evtl. seine Form) |
Koordinatentransformation: |
Objekt bleibt fest |
rechnerisch selber Formalismus:
Multiplikation des Koordinatenvektors mit Transformationsmatrix, ggf. + Translationsanteil
(wenn Ursprünge der Koordinatensysteme unterschiedlich)
wenn Translationsanteil entfällt:
Spalten der Matrix = Basisvektoren des alten Koordinatensystems, ausgedrückt durch
Koordinaten im neuen System
PostScript: Befehle
translate, rotate, scaleUnterschiede zu Objekttransformationen:
Homogene Koordinaten
Darstellung affiner Abbildungen und Koordinatentransformationen in der Form M
× v+d macht Berechnungen schwerfällig.dies wird erreicht durch Hinzunahme einer weiteren Koordinate
dafür werden Vektoren, die sich nur um einen festen Faktor w
¹ 0 unterscheiden, miteinander identifiziert (Klassenbildung)."homogene Koordinaten"
dem homogenen Vektor (x, y, w) entspricht der kartesische Vektor (x/w, y/w).
Jeder Punkt auf der Geraden durch den Nullpunkt und durch (x/w, y/w, 1) repräsentiert im homogenen Koordinatensystem denselben kartesischen Punkt (x, y) aus dem gewöhnlichen 2D-Koordinatensystem:
In der Tat lassen sich nun die Translationen gleichwertig mit allen anderen affinen Abb. als Produkte "Matrix mal Vektor" berechnen:
Beispiel:
Verschiebe mittels homogener Koordinaten den Punkt (2; 3) um den Vektor (7; 5) und drehe
anschließend das Ergebnis um 90° um den Ursprung.
T(7; 5): , entspr. (9; 8)
R(90°): sin 90° = 1, cos 90° = 0, somit
Analog im dreidimensionalen Fall:
vierte, homogenisierende Koordinate,
Darstellung der affinen Transformationen durch 4
Grund-Transformationen:
Anwendung dieser Transformationen in Szenengraphen
3D-Szenen werden oft in gerichteten, azyklischen Graphen abgelegt, den sog. Szenengraphen,
die durch Aufrufe einer Spezialbibliothek erzeugt werden
z.B. in OpenInventor, VRML, Java3D
(
Typisches Szenengraphen-Format (es gibt zahlreiche Varianten!):
Beispiel (aus vanDam 2001):
im folgenden Szenengraphen beeinflusst Transformation t0 alle Objekte,
aber t2 beeinflusst nur obj2 und eine Instanz von group3 (welche je eine Instanz von obj3 und obj4
enthält).
t2 wirkt nicht auf obj1 und auf die andere Instanz von group3.
Transformationsknoten enthalten normalerweise mindestens eine Matrix (für homogene Koordinatendarstellung), die die Transformation beschreibt; evtl. noch weitere Parameter.
Bestimmung der Komposition der Transformationsmatrizen (CTM: composite transformation matrix),
die auf einen Objektknoten anzuwenden ist:
Multiplikation der Matrizen in den Transformationsknoten bei top-down-Durchlauf des Baumes
(Details abhängig vom Grafikpaket).
Beispiel
(aus vanDam 2001):CTM(o1) = m1
CTM(o2) = m2
Transformations-Knoten in VRML 97:
In VRML 97 greift man gewöhnlich nicht auf eine allgemeine 4
´ 4-Matrixdarstellung für Transformationen zurück, sondern verwendet eine Skalierung S, eine Rotation R und eine Translation T(t) in fester Folge:(Krömker 2001)
Letzte Änderungen: 19. November 2001.