You are on page 1of 8

Required:

##  Foley, et al, Chapter 5.1-5.5.

 David F. Rogers and J. Alan Adams,
Mathematical Elements for Computer Graphics,
4. Affine transformations 2nd Ed., McGraw-Hill, New York, 1990, Chapter 2.

## Geometric transformations Representation

Geometric transformations will map points in one We can represent a point, p = (x,y), in the plane
space to points in another: (x',y',z') = f(x,y,z).
 as a column vector
These tranformations can be very simple, such as ªxº
scaling each coordinate, or complex, such as non- «y»
linear twists and bends.
¬ ¼
 as a row vector
We'll focus on transformations that can be >x y@
represented easily with matrix operations.

## We'll start in 2D...

Representation, cont. Two-dimensional transformations

We can represent a 2-D transformation M by a Here's all you get with a 2 x 2 transformation matrix
matrix M:
ªa b º ª x 'º ªa b º ª x º
«c d » « y '» « c d » « y »
¬ ¼ ¬ ¼ ¬ ¼¬ ¼

## If p is a column vector, M goes on the left:

So:
p' Mp x ' ax  by
ª x 'º ªa b º ª x º y ' cx  dy
« y '» « c d » « y »
¬ ¼ ¬ ¼¬ ¼
We will develop some intimacy with the elements
If p is a row vector, MT goes on the right: a, b, c, d…

p' pMT
ªa c º
>x' y '@ >x y@« »
¬b d ¼

## We will use column vectors.

Identity Scaling

Suppose we choose a=d=1, b=c=0: Suppose we set b=c=0, but let a and d take on any
positive value:
 Gives the identity matrix:
 Gives a scaling matrix:
ª1 0º ªa 0 º
«0 d »
« 0 1» ¬ ¼
¬ ¼
 Provides differential (non-uniform) scaling in
 Doesn't move the points at all x and y:
x ' ax
y ' dy
y y

ª2 0 º
«0 2 »
2 2 ¬ ¼
1 1
x x
1 2 1 2
y

ª1 2 0 º
« 0 2»
2 ¬ ¼
1
x
1 2
______________ ____________

Suppose we keep b=c=0, but let either a or d go Now let's leave a=d=1 and experiment b. . . .
negative.
The matrix
Examples: ª1 bº
« 0 1»
¬ ¼
gives:

ª 1 0 º ª1 0 º x' x  by
« 0 1» «0 1» y' y
¬ ¼ ¬ ¼

y y

y y

x x ª 1 1º
1 1 «0 1»
¬ ¼

x x
1 1

## Effect on unit square, cont.

:L
q
cu
iM
xfm
rl2
n
ag
w
o
t'sh
e Observe:
theu
nitsq
:
are
u
 Origin invariant under M
 M can be determined just by knowing how the
ªa b º corners (1,0) and (0,1) are mapped
« c d » >p q r s @ >p' q' r' s' @
¬ ¼  a and d give x- and y-scaling
 b and c give x- and y-shearing
ªa b º ª0 1 1 0 º ª0 a a  b b º
« c d » « 0 0 1 1» « 0 c c  d d »
¬ ¼¬ ¼ ¬ ¼

y y

s r
1

p q x x
1
Rotation Linear transformations

From our observations of the effect on the unit The unit square observations also tell us the 2x2
square, it should be easy to write down a matrix for matrix transformation implies that we are
“rotation about the origin”: representing a point
p' inMapnew coordinate system:
ªa b º ª x º
y y «c d » « y »
¬ ¼¬ ¼
ªxº
>u v @ « »
1 ¬y¼
x u  y  v
x T x
1

ª 1º
 « »o where u=[a c]T and v=[b d]T are vectors that define a
¬0 ¼ new basis for a linear space.
ª0 º The transformation to this new basis (a.k.a., change
 « »o
¬ 1¼ of basis) is a linear transformation.

Thus,
ª º
M R(T ) «« »
»
«¬ »¼

## Limitations of the 2 x 2 matrix Affine transformations

A 2 x 2 linear transformation matrix allows In order to incorporate the idea that both the basis
and the origin can change, we augment the linear
 Scaling space u, v with an origin t.
 Rotation
 Reflection We call u, v, and t (basis and origin) a frame for an
 Shearing affine space.

## Then, we can represent a change of frame as:

Q: What important operation does that leave out?
p' x u  y  v  t

transformation.

## How do we write an affine transformation with

matrices?
Homogeneous coordinates Rotation about arbitrary points

Idea is to loft the problem up into 3-space, adding a Until now, we have only considered rotation about
third component to every point: the origin.

## ªxº With homogeneous coordinates, you can specify a

ªxº « »
«y» o «y» rotation, T, about any point q = [qx qy]T with a
¬ ¼ « »
¬ 1¼ matrix:

## And then transform with a 3 x 3 matrix: y y y y

ª x'º ªxº ª1 0 t x º ª x º
« y ' » T (t) « y » «0 1 t » « y » θTTW
T
« » « » « y »« » q
¬«w ' ¼» ¬«1 ¼» ¬«0 0 1 »¼ «¬1 ¼» x x x x

y y

ª1 0 1 º
«0 1 1 2 » 1. Translate q to origin
1 1 « »
«¬0 0 1 »¼
2. Rotate
x x
1 1
3. Translate back

## Note: Transformation order is important!!

. . . gives translation!

## Points and vectors Barycentric coordinates

From now on, we can represent points as have an A set of points can be used to create an affine frame.
additional coordinate of w=1. Consider a triangle ABC and a point P:

## Vectors have an additional coordinate of w=0. Thus,

a change of origin has no effect on vectors.

## Q: What happens if we multiply a matrix by a vector?

We can form a frame with an origin C and the vectors
from C to the other vertices:

## These representations reflect some of the rules of u AC v B C t C

affine operations on points and vectors:
We can then write P in this coordinate frame:
vector + vector o
scalar  vector o P Du  E v  t
point - point o
point + vector o
point + point o

## One useful combination of affine operations is:

p(t ) po  tu
The coordinates (D, E, J) are called the barycentric
Q: What does this describe? coordinates of P relative to A, B, and C.
Computing barycentric coordinates Cross products
In the triangle example: Consider the cross-product of two vectors, u and v.
What is the geometric interpretation of this cross-
product?

## ª Ax Bx C x º ªD º ª Px º A cross-product can be computed as:

DA EB JC «A By Cy » «E » «P »
« y »« » « y»
¬« 1 1 1 ¼» ¬« J ¼» ¬« 1 ¼» i j k
uu v ux uy uz
Simple matrix analysis gives the solution:
vx vy vz
Px Bx Cx Ax Px Cx Ax Bx Px (u y v z  uz v y )i  (uz v x  u x v z ) j  (u x v y  u y v x )k
Py By Cy Ay Py Cy Ay By Py ª u y v z  uz v y º
1 1 1 1 1 1 1 1 1 « »
D E J « uz v x  u x v z »
Ax Bx Cx Ax Bx Cx Ax Bx Cx «u x v y  u y v x »
¬ ¼
Ay By Cy Ay By Cy Ay By Cy
1 1 1 1 1 1 1 1 1 What happens when u and v lie in the x-y plane?
What is the area of the triangle they span?
Computing the determinant of the denominator
gives:
B x C y  B y C x  Ay C x  Ax C y  Ax B y  Ay B x

## Barycentric coords from area ratios Affine and convex combinations

Now, let’s rearrange the equation from two slides
ago: Note that we seem to have added points together,
which we said was illegal, but as long as they have
coefficients that sum to one, it’s ok.
B x C y  B y C x  Ay C x  Ax C y  Ax B y  Ay B x
(B x  Ax )(C y  Ay )  (B y  Ay )(C x  Ax ) We call this an affine combination. More generally:

## The determinant is then just the z-component of P D1A1    D n An

(B-A) x (C-A), which is two times the area of triangle
ABC! is a proper affine combination if:

n
Thus, we find:
¦
i 1
Di 1
SArea( PBC ) SArea( APC ) SArea( ABP )
D E J
SArea( ABC ) SArea( ABC ) SArea( ABC ) Note that if the Di ‘s are all positive, the result is more
specifically called a convex combination.
Where SArea(RST) is the signed area of a triangle,
which can be computed with cross-products. Q: Why is it called a convex combination?
Basic 3-D transformations: scaling Translation in 3D

## Some of the 3-D transformations are just like the 2-D

ones. ª x 'º ª1 0 0 tx º ªxº
« y '» «0 1 0 ty » «y»
For example, scaling: « » « »« »
«z ' » «0 0 1 tz » «z »
ª x 'º ª sx 0 0 0º ª x º « » « »« »
« y '» «0 ¬1 ¼ ¬0 0 0 1 ¼ ¬1 ¼
sy 0 0» « y »
« » « »« »
«z ' » «0 0 sz 0» « z »
« » « »« »
¬1 ¼ ¬0 0 0 1¼ ¬1 ¼
y y

y y

x x

x x z z

z z

Rotation in 3D Shearing in 3D

Rotation now has more possibilities in 3D: Shearing is also more complicated. Here is one
example:

ª x 'º ª1 b 0 0º ª x º
ª1 0 0 0º
« y '» «0
«0 cosT  sinT 0» 1 0 0» « y »
R x (T ) « » « » « »« »
«0 sinT cosT 0» «z ' » «0 0 1 0» « z »
« » y « » « »« »
¬0 0 0 1¼
¬1 ¼ ¬0 0 0 1¼ ¬1 ¼
ª cosT 0 sinT 0º Ry
« 0 1 0 0»
R y (T ) « »
«  sinT 0 cosT 0» x
« » y
¬ 0 0 0 1¼ Rx y
Rz
ªcosT  sinT 0 0º z
« sinT cosT 0 0»
Rz (T ) « » Use right hand rule
« 0 0 1 0» x
« » x
¬ 0 0 0 1¼
z z

## We call this a shear with respect to the x-z plane.

Preservation of affine combinations Properties of affine transformations
A transformation F is an affine transformation if it
preserves affine combinations: Here are some useful properties of affine
transformations:
F (D1A1    D n An ) D1F ( A1 )    D n F ( An )
 Lines map to lines
where the Ai are points, and:  Parallel lines remain parallel
n
 Midpoints map to midpoints (in fact, ratios are
¦ Di 1 always preserved)
i 1

## One special example is a matrix that drops a

dimension. For example: r
t p'
: q'
ªxº s Æ s
ª1 0 0 0º « » ªxº q : r'
«0 1 0 0 » « y » «y» t
« » «z » « » p
«¬0 0 0 1»¼ « » «¬ 1 »¼
¬ 1¼
pq s p'q'
ratio
This transformation, known as an orthographic qr t q'r'
projection is an affine transformation.

Summary

##  All the names in boldface.

 How points and transformations are
represented.
 What all the elements of a 2 x 2 transformation
matrix do and how these generalize to 3 x 3
transformations.
 What homogeneous coordinates are and how
they work for affine transformations.
 How to concatenate transformations.
 The rules for combining points and vectors
 The mathematical properties of affine
transformations.