Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-30
Korrektur: Kugelkoordinaten II r und θ konstant: Rand einer Kreisscheibe parallel zur xy Ebene z θ fest y θ konstant, r R : Kegel, ausgehend vom Ursprung, bis zu diesem Ring θ konstant: Unendlicher Kegel, ausgehend vom Ursprung r φ θ x 2
Kapitel III: Transformationen
Allgemeines Umformungen bestehender Größen wie Punkten, Vektoren oder Farben Verformen, verschieben und animieren von Objekten Manipulieren von Lichtquellen und Kameras Projektion auf eine Ebene Lineare Transformation f x + f y = f(x + y) Vektoraddition kf x = f(kx) Skalare Multiplikation Affine Transformation Führt erst lineare Transformation, dann Translation aus Erhält Parallelität von Linien Winkel und Längen i.d.r. nicht 4
3.1 2D-Transformationen von Ortsvektoren
Scale I y B 1. x = 3 A 1. x B 1. y = 2 A 1. y B i = S 3,2 A i B 4 B 1 A 4 A 1 x A 3 A 2 B 3 B 2 6
Scale II S(2,1) S( 1 2, 1) S(2,2) = S 2,1 S(1,2) S(1, 1 2 ) S(1,2) = S 1,2 S(2,1) S(1, 1 2 ) S(1,2) S( 1 2, 1 2 ) S(2,1) S( 1 2, 1) 7
Scale III Skalierung von A mit Scalematrix S(s x, s y ) ergibt B gemäß: B x s x A x B y s y A y B x B y s x A x s y A y = S(s x, s y ) 1 = S( 1 s x, 1 s y ) 0s 0 x 0 0 0 0 0 s y 0 A x A y 8
2D Rotation I y P (x, y ) r y = r sin(α + β) P(x, y) β α x = r cos α + β x = r cos(α) y = r sin(α) x 9
x = r cos(α) 2D Rotation II x = r cos α + β x = r (cos α cos β sin α sin β ) x = r cos α cos β r sin α sin β x = x cos β y sin β y = r sin α + β y = r (cos α sin β + sin α cos β ) y = r cos α sin β + r sin α cos β y = x sin β + y cos β y = r sin(α) sin α + β = cos α sin β + sin α cos β cos α + β = cos α cos β sin α sin β 10
2D Rotation III Rotation von A mit Rotationsmatrix R(β) ergibt B gemäß: B x B x A x cos β A y sin β B y A x sin β + A y cos β B A x cos β A y sin β y A x sin β + A y cos β = cos β -sin β 0 0 0 0 0 0 0 sin β cos 0β 0 A x A y R(β) 1 = R β Orthogonal: R(β) 1 = R T β R α R β = R β R α = R α + β 11
Translation I y B 1. x = A 1. x 3 B 1. y = A 1. y + 2 B 4 B 1 "B i = T 3,2 + A i " B i = T 3,2 A i B 3 B 2 A 4 A 1 x A 3 A 2 12
Translation II Translation von A mit Translationsmatrix T(t x, t y ) soll B ergeben gemäß: B x A x + t x B y A y + t y b T t x, t y a B x B y A x + t x A y + t y = nicht möglich! 1?? 1 0 0 0 A x A y 13
Homogene Koordinaten I Gegeben: Ortsvektoren a, b der 2D-Punkte A, B, mit: a = a x a y, b = b x b y Diese haben dann 3D-Homogene Koordinaten der Form r = x, y, w T, unbestimmt bis auf einen Parameter w, w 0 : ah = a x a w a y a w a w, bh = b x b w b y b w b w Beispiel: 2,3,1 T und 8,12,4 T entsprechen gleichem 2D-Punkt Die letzte Komponente der homogenen Koordinaten wird als homogene Koordinate oder w-komponente bezeichnet Eindeutige 2D-Koordinaten erhält man über: a = 1 ah w ah x ah y = a x a y 14
Homogene Koordinaten II Verrechnet werden dürfen nur Vektoren mit gleichem w, typischerweise 1 Daher haben Richtungsvektoren immer die w-koordinate 0: a b = a x w a y w w b x w b y w w = w a x b x a y b y 0 Homogene Koordinaten eines 3D-Orts- und Normalen Vektors: r = n = x y z w x y z 0 15
Translation in homogenen Koordinaten Translation von A mit Translationsmatrix T(t x, t y ) ergibt B gemäß: B x A x + t x B y A y + t y B w 0 b T t x, t y B x B y 1 Affin a A x + t x A y + t y 1 t x 0 t y 0 0 1 0 A x = 0 1 A y 0 0 1 1 Für die Inverse gilt: T 1 t x, t y = T( t x, t y ) Hinweis: Auf dieser und den folgenden Folien wurde w eins gewählt. Dies hat keinerlei Einfluss auf die Matrizen. 16
3.2 3D Koordinatentransformationen in homogenen Koordinaten
Translation Translation von P mit T ergibt P gemäß: p x p x + t x p y p y + t y p z p z + t z p w 0 1 0 0 t x 0 1 0 t T t x, t y, t z y 0 0 1 t z 0 0 0 1 Für die Inverse gilt: T 1 t x, t y, t z = T( t x, t y, t z ) Affin 18
Scale Skalierung von P mit S ergibt P gemäß: p x p x s x p y p y s y p z p z s z p w 0 s x 0 0 0 0 s S s x, s y, s z y 0 0 0 0 s z 0 0 0 0 1 S 1 s x, s y, s z = S( 1 s x, 1 s y, 1 s z ) Affin 19
Rotation (z-axis) Rotation um z-achse von P um Winkel α ergibt P p x p x cos (α) p y sin(α) p y p x sin α + p y cos (α) y p z p z p w 0 R z α Affin & orthogonal cos (α) sin (α) 0 0 sin (α) cos (α) 0 0 0 0 1 0 0 0 0 1 z α x R z 1 α = R z ( α) 20
Rotation (x-axis) Rotation um x-achse von P um Winkel α ergibt P p x p x p y p y cos (α) p z sin(α) p z p y sin α + p z cos (α) p w 0 R x α Affin & orthogonal R x 1 α 1 0 0 0 0 cos (α) sin (α) 0 0 sin (α) cos (α) 0 0 0 0 1 = R x ( α) x z α y 21
Rotation (y-axis) Rotation um y-achse von P um Winkel α ergibt P p x p z sin α + p x cos (α) p y p y p z p z cos (α) p x sin(α) p w 0 R y α Affin & orthogonal cos (α) 0 sin (α) 0 0 1 0 0 sin (α) 0 cos (α) 0 0 0 0 1 y x α z R y 1 α = R y ( α) 22
3.3 Zusammengesetzte Transformationen
Zusammengesetzte Transformationen Bis hier: Elementartransformationen Komplexere Transformationen können als Kombinationen davon beschrieben werden Reihenfolge i.d.r. nicht beliebig Assoziativ Inverse sind die in umgekehrter Reihenfolge aneinander multiplizierten inversen Elementarmatrizen 24
Transformationen i.a. nicht kommutativ T 2, 2 R 90 = R π 2 T R R T R 90 = R π 2 T 2, 2 25
Inverse T 2, 2 R π 2 M = R T R 1 π 2 = R π 2 T 1 2, 2 = T(2,2) M 1 = T 1 R 1 26
2D Rotation um freies Rotationszentrum y α P(p x, p y ) Ziel: Rotiere Punkte r i um Winkel α um P und erhalte r i Idee: Führe auf elementare Transformationen zurück Verschiebe Rotationszentrum in Ursprung: T( p x, p y ) Führe Rotation um Ursprung aus: R(α) Verschiebe Rotationszentrum zurück: T 1 p x, p y = T(p x, p y ) α Transformiere Koordinaten r i entsprechend gemäß: r i = T p x, p y R α T p x, p y r i r = M p x, p y, α r i x 27
Versionshistorie 2012-04-30 Folie 10: Vorzeichenfehler des Additionstheorems korrigiert Folie 16: Hinweis auf Wahl von w = 1 ohne Einschränkung der Allgemeinheit eingefügt 28