Upload
ashlie-robertson
View
221
Download
0
Tags:
Embed Size (px)
Citation preview
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