Sie sind auf Seite 1von 21

CGV Uebung

Transformationen
Skalierung

2 0 0 1 2

0 3 0 * 1 = 3

0 0 4 1 4
Skalierung

Sx 0 0
0 Sy 0
0 0 Sz
Rotation (Z-Achse)

0 -1 0 1 0

1 0 0 * 0 = 1

0 0 1 0 0
Rotation (Z-Achse)

cos -sin 0
sin cos 0
0 0 1
Rotation (X und Y -Achse)

1 0 0 cos 0 sin
0 cos -sin 0 1 0
0 sin cos -sin 0 cos
Drehung um x-Achse Drehung um y-Achse
Translation
• Bei 3x3 Matrizen durch Addition:
Vektor A + Vektor B

1 4 5
2 + 7 = 9
3 0 3
Translation
• Müssten getrennt von den anderen
Transfomationen behandelt werden
• Können so nicht mit anderen Transfomationen
zu einer Matrix zusammengefasst werden.
• Lösung: homogene Koordinaten
– Erweiterung um eine weitere Dimension (w)
Translation

1 0 0 3 1 1+3 4

0 1 0 4 1 1+4 5
* = =
0 0 1 5 1 1+5 6
0 0 0 1 1 1 1
Homogene Koordinaten
• Homogene Koordinaten können erzeugt werden,
indem eine zusätzliche Dimension eingeführt wird. Ein
Punkt p=(px,py,pz) lautet in homogenen Koordinaten
ph=(px*w,py*w,pz*w,w), wobei w ein Skalierungsfaktor
ungleich Null ist.
• Homogene Koordinaten wurden eingeführt, da mit
ihnen
– neben linearen Transformationen auch Translationen
durch Matrizenmultiplikation dargestellt werden können
– Alle Transformationen einheitlich über
Matrixmultiplikationen behandelt werden können
– Mehrere verschiedene Transformationen mit Hilfe einer
einzigen Matrix dargestellt werden können.
Transformationen
• Alle Transformationen können als Matrizen
dargestellt werden.
• Das nacheinader Ausführen von zwei
Transformationen entspricht dann einer
Matrixmultiplikation.
• Um auch Translationen als Matrixmultiplikation
darstellen zu können braucht man homogene
Koordinaten.
• Nicht kommutativ : A * B ≠ B * A
• Die Reihenfolge ist wichtig!
Matrixstack
• Stack = Stapel
• Man kann neue Elemente oben drauf legen,
oder das Oberste wegnehmen.
• Man kann immer nur an das oberste Element
ran.
• Erlaubt es zu einer bestimmten
Transformation zurückzukehren.
Beispiel Roboterarm

Matrixstack
R1

R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

(Push) T3 * R2 * T2 * R1 * T1
T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3 T4
R4
R4 * T4 * T3 * R2 * T2 * R1 * T1
T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

(pop) T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

(push) T3 * R2 * T2 * R1 * T1
T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

R5 Matrixstack
R1 T5

T2 R2
T3

R5 * T5 * T3 * R2 * T2 * R1 * T1
T3 * R2 * T2 * R1 * T1
T1
Beispiel Roboterarm

Matrixstack
R1

T2 R2
T3

(pop) T3 * R2 * T2 * R1 * T1
T1