Affine Transformationen

Werbung
Affine Transformationen
Ulf Döring, Markus Färber
07.03.2011
1. Ein Quadrat Q sei zu einem Objekt Q0 zu transformieren.
y
Die Transformation wird durch folgende Berechnung beschrieben:

 

1 sx 0
0 1 1 0
Q0 = sy 1 0 · 0 0 1 1 = S · Q
0 0 1
1 1 1 1
D
1
C
A
B
1
x
(a) Welche Dimension hat der Raum?
(b) Welcher Typ von Koordinaten wird verwendet?
(c) Um welche Art der Transformation handelt es sich?
(d) Berechnen Sie Q0 allgemein für die Variablen sx und sy .
(e) Skizzieren Sie Q0 für sx = 0, 4 und sy = 0, 2.
2. Problem: Spiegelung an einer beliebigen Gerade in der xy-Ebene.
Gegeben sei eine Gerade g und ein Dreieck ABC mit den Eckpunkten A (2; 4), B (4; 6)
und C (2; 6).
Die Geradengleichung für g lautet y = 21 x + 2 bzw. y = 21 (x + 4).
(a) Skizzieren Sie das Dreieck ABC, die Gerade g, die Geraden durch A und A0 , B und
B 0 sowie C und C 0 und das resultierende Dreieck A0 B 0 C 0 .
Hinweis: Punkte werden stets entlang einer Geraden gespiegelt, die senkrecht zur
Spiegelgeraden liegt. Für senkrecht aufeinander stehende Geraden gilt folgendes: Hat eine Gerade den Anstieg tan α = a : b, so hat die andere den Anstieg
−b : a.
Die Geraden durch A und A0 , B und B 0 sowie C und C 0 lassen sich also unter
Nutzung von A, B und C sowie ihrem Anstieg einzeichnen. Entsprechend einfach ergeben sich dann auch A0 , B 0 und C 0 , was für die Überprüfung späterer
Rechenschritte von großem Nutzen ist.
(b) Stellen Sie die Transformationsmatrizen für folgende Teilschritte auf:
Hinweis: Die Aufstellung der Rotationsmatrizen kann günstig mittels rationaler
Zahlen und Wurzeln erfolgen. Diese ergeben sich wie in nebenstehender Skizze
beschrieben. Werden diese Matrizen verwendet, fallen bei der Rückrotation die
Wurzeln wieder heraus.
–1–
2
2
2
a b =c
c= 5
α
b=2
a=1
a 1
sin α= =
c 5
b 2
cos α= =
c 5
a
tan α=
b
sin−α=−sin α
cos−α=cos α
Affine Transformationen
i.
ii.
iii.
iv.
v.
Verschiebung von g in den Ursprung
Rotation von g auf die x-Achse (Drehsinn beachten!)
Spiegelung an g (jetzt an der x-Achse)
Inverse Rotation (Drehsinn beachten!)
Rücktranslation
(c) Überprüfen Sie die Korrektheit der unter (b) erstellten Matrizen durch schrittweise
Anwendung auf die Eckpunkte des Dreiecks ABC.
(d) Bilden Sie eine gemeinsame Matrix M (enthält nur rationale Zahlen, keine Wurzeln)
und wenden Sie sie auf die Eckpunkte des Dreiecks an. Vergleichen Sie das Ergebnis
mit der Berechung aus (c) sowie mit der Skizze aus (a).
–2–
Affine Transformationen
Ulf Döring, Markus Färber
07.03.2011
inkl. Lösungen
1. Ein Quadrat Q sei zu einem Objekt Q0 zu transformieren.
y
Die Transformation wird durch folgende Berechnung beschrieben:

 

1 sx 0
0 1 1 0
Q0 = sy 1 0 · 0 0 1 1 = S · Q
0 0 1
1 1 1 1
1
D
C
A
B
1
(a) Welche Dimension hat der Raum?
Lösung:
Es handelt sich um den 2D-Raum.
(b) Welcher Typ von Koordinaten wird verwendet?
Lösung:
Es kommen homogene Koordinaten (x y w)> zur Anwendung.
(c) Um welche Art der Transformation handelt es sich?
Lösung:
Es handelt sich um eine Scherung.
(d) Berechnen Sie Q0 allgemein für die Variablen sx und sy .
Lösung:

 
 

1 sx 0
0 1 1 0
0 1 1 + sx sx
Q0 = sy 1 0 · 0 0 1 1 = 0 sy sy + 1 1 
0 0 1
1 1 1 1
1 1
1
1
(e) Skizzieren Sie Q0 für sx = 0, 4 und sy = 0, 2.
Lösung:
–1–
x
Affine Transformationen
inkl. Lösungen
y
C'
D'
1


0 1 1, 4 0, 4
Q0 = 0 0, 2 1, 2 1 
1 1
1
1
B'
A'
1
x
2. Problem: Spiegelung an einer beliebigen Gerade in der xy-Ebene.
Gegeben sei eine Gerade g und ein Dreieck ABC mit den Eckpunkten A (2; 4), B (4; 6)
und C (2; 6).
Die Geradengleichung für g lautet y = 21 x + 2 bzw. y = 21 (x + 4).
(a) Skizzieren Sie das Dreieck ABC, die Gerade g, die Geraden durch A und A0 , B und
B 0 sowie C und C 0 und das resultierende Dreieck A0 B 0 C 0 .
Hinweis: Punkte werden stets entlang einer Geraden gespiegelt, die senkrecht zur
Spiegelgeraden liegt. Für senkrecht aufeinander stehende Geraden gilt folgendes: Hat eine Gerade den Anstieg tan α = a : b, so hat die andere den Anstieg
−b : a.
Die Geraden durch A und A0 , B und B 0 sowie C und C 0 lassen sich also unter
Nutzung von A, B und C sowie ihrem Anstieg einzeichnen. Entsprechend einfach ergeben sich dann auch A0 , B 0 und C 0 , was für die Überprüfung späterer
Rechenschritte von großem Nutzen ist.
Lösung:
y
C
B
5
g
α
A
B'
A'
C'
α
5
–2–
x
Affine Transformationen
inkl. Lösungen
(b) Stellen Sie die Transformationsmatrizen für folgende Teilschritte auf:
Hinweis: Die Aufstellung der Rotationsmatrizen kann günstig mittels rationaler
Zahlen und Wurzeln erfolgen. Diese ergeben sich wie in nebenstehender Skizze
beschrieben. Werden diese Matrizen verwendet, fallen bei der Rückrotation die
Wurzeln wieder heraus.
i. Verschiebung von g in den Ursprung
2
2
2
a b =c
c= 5
α
a=1
b=2
a 1
sin α= =
c 5
b 2
cos α= =
c 5
a
tan α=
b
sin−α=−sin α
cos−α=cos α
Lösung:
y


1 0 ∆x
M1 = 0 1 ∆y 
0 0 1
zum Beispiel mit ∆x = 0 und ∆y = −2
(∆y = −n aus der Geradengleichung y = mx + n).
x
ii. Rotation von g auf die x-Achse (Drehsinn beachten!)
Lösung:


cos −α − sin −α 0
M2 =  sin −α cos −α 0
0
0
1


cos α sin α 0

= − sin α cos α 0
0
0
1
−1
mit sin α = √
und cos α = √25 (Es wird im Uhr5
zeigersinn gedreht, also um den Winkel −α). Es gilt
weiterhin: sin −x = − sin x und cos −x = cos x.
iii. Spiegelung an g (jetzt an der x-Achse)
Lösung:
–3–
y
-α
x
Affine Transformationen
inkl. Lösungen


sx 0 0
M3 =  0 sy 0
0 0 1
y
x
mit sx = 1 und sy = −1 (Spiegelung an der x-Achse
ist ein Spezialfall der Skalierung; y-Koordinaten werden
invertiert).
iv. Inverse Rotation (Drehsinn beachten!)
Lösung:
y
+α

M4 = M2−1

cos α − sin α 0
=  sin α cos α 0
0
0
1
x
v. Rücktranslation
Lösung:
y

M5 = M1−1

1 0 −∆x
= 0 1 −∆y 
0 0
1
x
(c) Überprüfen Sie die Korrektheit der unter (b) erstellten Matrizen durch schrittweise
Anwendung auf die Eckpunkte des Dreiecks ABC.
Lösung:
–4–
Affine Transformationen
inkl. Lösungen

2
4
1
2
2
1

M1
M2
M3
M4

1 0 0
0 1 −2
:
0 0 1
 2

√
√1
0
5
5
: − √15 √25 0
0
0 1


1 0 0
0 −1 0
:
0 0 1
2

√
√1
−
0
5
5
√2
0
:  √1
5
0

M5 :
5
0
1 0
0 1
0 0
1
0
2
1
√6
5
 √2
5

1
√6
5
−2
√
5

1
 14
5
2
5
1
 14
4
6
1
4
4
1

2
6
1
2
4
1
12
√
5
√4
5
1
12
√
5
−4
√
5
1
28
5
4
5
= ABC
= A1 B1 C1 = M1 · ABC

√8
5
√6 
5
= A2 B2 C2 = M2 · A1 B1 C1
1

√8
5
−6 
√
5
= A3 B3 C3 = M3 · . . .
1
22
5
−4 
5

1
1
5
 12
5
28
5
14
5
22
5
6 
5
1
1
1



2, 8 5, 6 4, 4
= A0 B 0 C 0 = 2, 4 2, 8 1, 2
1
1
1
(d) Bilden Sie eine gemeinsame Matrix M (enthält nur rationale Zahlen, keine Wurzeln)
und wenden Sie sie auf die Eckpunkte des Dreiecks an. Vergleichen Sie das Ergebnis
mit der Berechung aus (c) sowie mit der Skizze aus (a).
Lösung:
3
5
4
5
A0 B 0 C 0 = M · ABC =  45 − 35
0 0
–5–
4
5
− 85


− 53 16
5
0 0
1
  14


2 4 2
− 85
5
16  
· 4 6 6 =  12
5
5
1
1 1 1
1
M = M5 · M4 · M3 · M2 · M1 =
3
5
4
5
28
5
14
5
22
5
6 
5
1
1

Herunterladen