19
Transformations Angel 4.6-4.8 Angel: Interactive Computer Graphics5E © Addison- Wesley 2009 1

Transformations Angel 4.6-4.8 Angel: Interactive Computer Graphics5E © Addison-Wesley 2009 1

Embed Size (px)

Citation preview

Transformations

Angel 4.6-4.8

Angel: Interactive Computer Graphics5E © Addison-Wesley 2009 1

Objectives• Introduce standard transformations

– Rotation– Translation– Scaling– Shear

• Derive homogeneous coordinate transformation matrices

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 2

General Transformations• A transformation maps points to other

points and/or vectors to other vectors

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 3

Q=T(P)

v=T(u)

Affine Transformations• Line preserving• Characteristic of many physically important

transformations– Rigid body transformations: rotation,

translation– Scaling, shear

• Importance in graphics is that we need only transform endpoints of line segments and let implementation draw line segment between the transformed endpoints

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 4

Pipeline Implementation

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 5

transformation rasterizer

u

u

v

T

T(u)

T(v)

T(u)T(u)

T(v)

T(v)

vertices vertices pixels

framebuffer

(from application program)

NotationWe will be working with both coordinate-free

representations of transformations and representations within a particular frame

P, Q, R: points in an affine space u, v, w: vectors in an affine space , , : scalars p, q, r: representations of points

-array of 4 scalars in homogeneous coordinates u, v, w: representations of vectors

-array of 4 scalars in homogeneous coordinates

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 6

Translation• Move (translate, displace) a point to a new

location

• Displacement determined by a vector d– Three degrees of freedom– P’=P+d

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 7

P

P’

d

How many ways?• Although we can move a point to a new

location in infinite ways, when we move many points there is usually only one way

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 8

object translation: every point displaced by same vector

Translation Using RepresentationsUsing the homogeneous coordinate

representation in some frame p=[ x y z 1]T

p’=[x’ y’ z’ 1]T

d=[dx dy dz 0]T

Hence p’ = p + d or

x’=x+dx

y’=y+dy

z’=z+dz

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 9

note that this expression is in four dimensions and expressespoint = vector + point

Translation MatrixWe can also express translation using a 4 x 4 matrix T in homogeneous coordinatesp’=Tp where

T = T(dx, dy, dz) =

This form is better for implementation because all affine transformations can be expressed this way and multiple transformations can be concatenated together

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 10

1000

d100

d010

d001

z

y

x

Consider rotation about the origin by degrees– radius stays the same, angle increases by

Rotation (2D)

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 11

x' = x cos – y sin y' = x sin + y cos

x = r cos y = r sin

x' = r cos (y' = r sin (

Rotation about the z axis

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 12

• Rotation about z axis in three dimensions leaves all points with the same z

– Equivalent to rotation in two dimensions in planes of constant z

– or in homogeneous coordinates

p’=Rz()p

x’ = x cos – y sin y’ = x sin + y cos z’ = z

Rotation Matrix

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 13

1000

0100

00 cossin

00sin cos

R = Rz() =

Rotation about x and y axes

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 14

• Same argument as for rotation about z axis– For rotation about x axis, x is unchanged

– For rotation about y axis, y is unchanged

R = Rx() =

R = Ry() =

1000

0 cos sin0

0 sin- cos0

0001

1000

0 cos0 sin-

0010

0 sin0 cos

Scaling

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 15

1000

000

000

000

z

y

x

s

s

s

S = S(sx, sy, sz) =

x’=sxxy’=syxz’=szx

p’=Sp

Expand or contract along each axis (fixed point of origin)

Reflection

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 16

corresponds to negative scale factors

originalsx = -1 sy = 1

sx = -1 sy = -1 sx = 1 sy = -1

Inverses

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 17

• Although we could compute inverse matrices by general formulas, we can use simple geometric observations

– Translation: T-1(dx, dy, dz) = T(-dx, -dy, -dz)

– Rotation: R -1() = R(-)• Holds for any rotation matrix

• Note that since cos(-) = cos() and sin(-)=-sin()

R -1() = R T()

– Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)

Shear• Helpful to add one more basic

transformation

• Equivalent to pulling faces in opposite directions

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 18

Shear Matrix• Consider simple shear along x axis

Angel: Interactive Computer Graphics 5E © Addison-Wesley 2009 19

x’ = x + y cot y’ = yz’ = z

1000

0100

0010

00cot 1

H() =