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