
CS 536 Computer Graphics Transformations Week 9, Lecture 18 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 2D Transformations 3 2D Affine Transformations All represented as matrix operations on vectors! Parallel lines preserved, angles/lengths not • Scale • Rotate • Translate • Reflect • Shear 4 Pics/Math courtesy of Dave Mount @ UMD-CP 2D Affine Transformations • Example 1: rotation and non uniform scale on unit cube • Example 2: shear first in x, then in y Note: – Preserves parallels – Does not preserve lengths and angles 5 1994 Foley/VanDam/Finer/Huges/Phillips ICG 2D Transforms: Translation • Rigid motion of points to new locations • Defined with column vectors: as 6 1994 Foley/VanDam/Finer/Huges/Phillips ICG 2D Transforms: Scale • Stretching of points along axes: In matrix form: or just: 7 1994 Foley/VanDam/Finer/Huges/Phillips ICG 2D Transforms: Rotation • Rotation of points about the origin Positive Angle: CCW Negative Angle: CW Matrix form: or just: 8 1994 Foley/VanDam/Finer/Huges/Phillips ICG 2D Transforms: Rotation • Substitute the 1st two equations into the 2nd two to get the general equation rcos(θ + φ) rcos(φ) x'= x cos(θ) − y sin(θ) y'= x sin(θ) + y cos(θ) 9 1994 Foley/VanDam/Finer/Huges/Phillips ICG € Homogeneous Coordinates • Observe: translation is treated differently from scaling and rotation • Homogeneous coordinates: allows all transformations to be Example: A 2D point (x,y) is the line (x,y,w), where w is any real #, in 3D treated as matrix homogenous coordinates. multiplications To get the point, homogenize by dividing by w (i.e. w=1) 10 1994 Foley/VanDam/Finer/Huges/Phillips ICG Recall our Affine Transformations 11 Pics/Math courtesy of Dave Mount @ UMD-CP Matrix Representation of 2D Affine Transformations • Translation: • Scale: • Rotation: • Shear: Reflection: Fy= 12 Composition of 2D Transforms • Rotate about a point P1 – Translate P1 to origin – Rotate – Translate back to P1 P’ = T ✴ P T 13 1994 Foley/VanDam/Finer/Huges/Phillips ICG Composition of 2D Transforms • Scale object around point P1 – P1 to origin – Scale – Translate back to P1 – Compose into T P’ = T ✴ P 14 1994 Foley/VanDam/Finer/Huges/Phillips ICG Composition of 2D Transforms • Scale + rotate object around point P1 and P’ = T ✴ P move to P2 – P1 to origin – Scale – Rotate – Translate to P2 15 1994 Foley/VanDam/Finer/Huges/Phillips ICG Composition of 2D Transforms • Be sure to multiple transformations in proper order! P’ = (T✴(R✴(S✴ (T✴ P)))) P’ = ((T✴ (R✴ (S ✴ T)))✴ P) P’ = T ✴ P 16 The Window-to-Viewport Transformation • Problem: Screen windows cannot display the whole world (window management) • How to transform and clip: Objects to Windows to Screen 18 Pics/Math courtesy of Dave Mount @ UMD-CP Window-to-Viewport Transformation • Given a window Three steps: and a viewport, • Translate what is the • Scale transformation from • Translate WCS to VPCS? 19 1994 Foley/VanDam/Finer/Huges/Phillips ICG Transforming World Coordinates to Viewports • 3 steps 1. Translate 2. Scale 3. Translate Overall Transformation: P'= MwvP 20 1994 Foley/VanDam/Finer/Huges/Phillips ICG € 3D Transformations 24 Representation of 3D Transformations • Z axis represents depth • Right Handed System – When looking “down” at the origin, positive rotation is CCW • Left Handed System – When looking “down”, positive rotation is in CW – More natural interpretation for displays, big z means “far” (into screen) 25 1994 Foley/VanDam/Finer/Huges/Phillips ICG 3D Homogenous Coordinates • Homogenous coordinates for 2D space requires 3D vectors & matrices • Homogenous coordinates for 3D space requires 4D vectors & matrices • [x,y,z,w] 26 3D Transformations: Scale • Scale – Parameters for each axis direction 27 3D Transformations: Translate • Translation 28 3D Transformations: Rotation • One rotation for each world coordinate axis 29 Rotation Around an Arbitrary Axis • Rotate a point P around axis n (x,y,z) by angle θ # tx 2 + c txy + sz txz − sy 0& % ( txy − sz ty 2 + c tyz + sx 0 R = % ( %txz + sy tyz − sx tz2 + c 0( % ( $ 0 0 0 1' • c = cos(θ) • s = sin(θ) € • t = (1 - c) Graphics Gems I, p. 466 & 498 30 Rotation Around an Arbitrary Axis • Also can be expressed as the Rodrigues Formula Prot = P cos(ϑ ) + (n × P)sin(ϑ ) + n(n⋅ P)(1− cos(ϑ )) € 31 Improved Rotations • Euler Angles have problems – How to interpolate keyframes? – Angles aren’t independent – Interpolation can create Gimble Lock, i.e. loss of a degree of freedom when axes align • Solution: Quaternions! 32 33 34 p = (0,x ) € 35 36 37 A & B are quaternions slerp – Spherical linear interpolation Need to take equals steps on the sphere 38 What about interpolating multiple keyframes? • Shoemake suggests using Bezier curves on the sphere • Offers a variation of the De Casteljau algorithm using slerp and quaternion control points • See K. Shoemake, “Animating rotation with quaternion curves”, Proc. SIGGRAPH ’85 39 3D Transformations: Reflect • Reflection: about x-y plane " −1 0 0 0 % $ ' 0 1 0 0 about y-z plane F = $ ' x $ 0 0 1 0 ' $ ' # 0 0 0 1 & 40 Reflection corresponds to negative scale factors sx = -1 sy = 1 original sx = -1 sy = -1 sx = 1 sy = -1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 3D Transformations: Shear ! 1 sh 0 0 $ # x & • Shear: # 0 1 0 0 & H x = (function of y) # 0 0 1 0 & # & " 0 0 0 1 % x' = x +shx ⋅ y 43 3D Transformations: Shear " y z % " X'% 1 Shx Shx 0 " X% $ ' $ ' $ ' Y' Sh x 1 Sh z 0 Y $ ' = $ y y ' ∗$ ' $ x y ' $ Z'' Shz Shz 1 0 $ Z' $ ' $ ' $ ' # 1 & # 0 0 0 1& # 1 & y z X ' = X + ShxY + Shx Z x z Y ' = Shy X +Y + Shy Z € x y Z ' = Shz X + Shz Y + Z 45 Example: Composition of 3D Transformations • Goal: Transform P1P2 and P1P3 46 1994 Foley/VanDam/Finer/Huges/Phillips ICG Example (Cont.) (1) • Process 1. Translate P1 to (0,0,0) 2. Rotate about y 3. Rotate about x 4. Rotate about z (2-3) (4) 47 1994 Foley/VanDam/Finer/Huges/Phillips ICG Final Result • What we’ve really done is transform the local coordinate system Rx, Ry, Rz to align with the origin x,y,z 48 1994 Foley/VanDam/Finer/Huges/Phillips ICG Example 2: Composition of 3D Transformations • Airplane defined in x,y,z • Problem: want to point it in Dir of Flight (DOF) centered at point P • Note: DOF is a vector • Process: – Rotate plane – Move to P 49 1994 Foley/VanDam/Finer/Huges/Phillips ICG Example 2 (cont.) • Zp axis to be DOF • Xp axis to be a horizontal vector perpendicular to DOF – y x DOF • Yp, vector perpendicular to both Zp and Xp (i.e.Zp x Xp) 50 1994 Foley/VanDam/Finer/Huges/Phillips ICG Transformations to Change Coordinate Systems • Issue: the world has many different relative frames of reference • How do we transform among them? • Example: CAD Assemblies & Animation Models 51 Transformations to Change Coordinate Systems • 4 coordinate systems 1 point P M1←2 = T (4,2) M 2←3 = T (2,3) • S(0.5,0.5) M 3←4 = T (6.7,1.8) • R(45 ) 52 1994 Foley/VanDam/Finer/Huges/Phillips ICG Coordinate System Example (1) • Translate the House to the origin M1←2 = T(x1,y1) −1 M2←1 = (M1←2 ) = T(−x1,−y1) P1 The matrix Mij that maps points from coordinate system j € to i is the inverse of the matrix Mji that maps points from coordinate system j to coordinate system i. 53 1994 Foley/VanDam/Finer/Huges/Phillips ICG Coordinate System Example (2) • Transformation M = M • M • M • M Composition: 5←1 5←4 4←3 3←2 2←1 € 54 1994 Foley/VanDam/Finer/Huges/Phillips ICG World Coordinates and Local Coordinates • To move the tricycle, we need to know how all of its parts relate to the WCS • Example: front wheel rotates on the ground wrt the front wheel’s z (wo) (wh ) axis: P = T(αr,0,0)⋅ Rz (α)⋅ P Coordinates of P in wheel coordinate system: (wh) (wh ) P' = Rz (α)⋅ P 55 € 1994 Foley/VanDam/Finer/Huges/Phillips ICG € Properties of Transformation Matrices • Note that matrix multiplication is not commutative • i.e. in general M1M2 ≠ M2M1 • T – reflection around y axis • T’ – rotation in the plane .
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages49 Page
-
File Size-