<<

CS 536

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 operations on vectors! Parallel lines preserved, /lengths not

• Scale • Rotate • Translate • Reflect • Shear

4 Pics/Math courtesy of Dave Mount @ UMD-CP 2D Affine Transformations

• Example 1: 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:

• Rigid 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 : 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

• Observe: translation is treated differently from and rotation • Homogeneous coordinates: allows all transformations to be Example: A 2D (x,y) is the (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: : 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 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

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: !

32 33 34  p = (0,x )

35 36 37 A & B are quaternions

slerp – Spherical linear interpolation Need to take equals steps on the 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 control points • See K. Shoemake, “Animating rotation with quaternion curves”, Proc. SIGGRAPH ’85 39 3D Transformations: Reflect • Reflection:

about x-y

" −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 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 is not commutative

• i.e. in general M1M2 ≠ M2M1

• T – reflection around y axis • T’ – rotation in the plane