0% found this document useful (0 votes)
56 views

Tranformations: Some Slides Adapted From Octavia Camps

This document discusses various matrix transformations including translation, rotation, scaling, and their representations as matrix operations. It provides the equations and explanations for 2D and 3D transformations. Key points covered include how translation, rotation, and scaling can be represented by matrices and combined through matrix multiplication to describe more complex transformations. It also discusses inverse transformations, degrees of freedom, and applying transformations to lines and normals in 2D and 3D spaces.

Uploaded by

Jamie Jones
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views

Tranformations: Some Slides Adapted From Octavia Camps

This document discusses various matrix transformations including translation, rotation, scaling, and their representations as matrix operations. It provides the equations and explanations for 2D and 3D transformations. Key points covered include how translation, rotation, and scaling can be represented by matrices and combined through matrix multiplication to describe more complex transformations. It also discusses inverse transformations, degrees of freedom, and applying transformations to lines and normals in 2D and 3D spaces.

Uploaded by

Jamie Jones
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 34

Tranformations

Some slides adapted from Octavia


Camps

Matrices


An




a11
a21
a31

a12
a22
a32

Sum:

a1m
a2 m
a3m

an1

an 2

An

Bn

Cn

anm

cij

aij

bij

A and B must have the same


dimensions

Matrices
Product:

Cn

An m Bm

cij

A and B must have


compatible dimensions

aik bkj

An n Bn

k 1




Identity Matrix:






1
0

0
1

Bn n An

0
0









IA  AI

Matrices
Associative T*(U*(V*p)) = (T*U*V)*p
Distributive T*(u+v) = T*v + T*v

Matrices
Transpose:

Cm

cij
If

AT

AT n

a ji


( A B )T
( AB)T

AT

BT

B T AT

A is symmetric

Matrices
Determinant:


a
det 11
a21


A must be square


a12
a22

a11
a21

a11
det a21
a31


a12
a22

a11a22  a21a12

a12
a22
a32

a13
a23
a33

a11

a22
a32

a23  a21
a12
a33
a31

a23
a33

a13

a21
a31

a22
a32

Matrices
Inverse:

An n A

A must be square
1

n n

a11
a21

a12
a22

1

n n

An

1
a11a22  a21a12

a22
a
21

a

12

a11

Euclidean transformations

2D Translation
P!

2D Translation Equation
ty

P!

P  ( x, y )
t  (t , t )
x

tx

P'  ( x t x , y t y )  P t

10

2D Translation using Matrices


ty

P!

tx

P'

P  ( x, y )
t  (t x , t y )


x tx
y ty




1 0 tx
0 1 ty




x
y
1

11

Scaling

P!

12

Scaling Equation
P!

s.y
y

P
x

( x, y )

P' ( sx, sy )
P'  s  P
s.x

P'

sx

s 0

sy

P'  S  P




0 s

13

Rotation
P
P!

14

Rotation Equations
Counter- clockwise rotation by an angle

Y!


 

 x '    cos
 


P!

X!

y'

sin

 
sin   x 
 

cos

P'
R.P

15

Why does multiplying points by R rotate them?


Think of the rows of R as a new coordinate system.
Taking inner products of each points with these expresses
that point in that coordinate system.
This means rows of R must be orthonormal vectors
(orthogonal unit vectors).
Think of what happens to the points (1,0) and (0,1). They
go to (cos theta, -sin theta), and (sin theta, cos theta). They
remain orthonormal, and rotate clockwise by theta.
Any other point, (a,b) can be thought of as a(1,0) +
b(0,1). R(a(1,0)+b(0,1) = Ra(1,0) + Ra(0,1) = aR(1,0) +
bR(0,1). So its in the same position relative to the
rotated coordinates that it was in before rotation relative
to the x, y coordinates. That is, its rotated.

16

Degrees of Freedom

 

 x '    cos
 


y'

R is 2x2

sin

 
sin   x 
 

cos

4 elements

BUT! There is only 1 degree of freedom:

The 4 elements must satisfy the following constraints:

R  RT RT  R
det(R ) 1

17

Transformations can be
composed
Matrix multiplication is associative.
Combine series of transformations into
one matrix. (example, whiteboard).
In general, the order matters. (example,
whiteboard).
2D Rotations can be interchanged.
Why?

18

Rotation and Translation

cos

-sin

tx

sin

cos

ty

x
y
1

)( )

Rotation, Scaling and Translation

-b

tx

ty

x
y
1

)( )

19

Rotation about an arbitrary point


Can translate to origin, rotate, translate
back. (example, whiteboard).
This is also rotation with one translation.
Intuitively, amount of rotation is same
either way.
But a translation is added.

20

Inverse of a rotation
If R is a rotation, RRT = I.
This is because the diagonals of RRT are the
magnitudes of the rows, which are all 1, because
the rows are unit vectors giving directions.
The off-diagonals are the inner product of
orthogonal unit vectors, which are zero.

So the transpose of R is its inverse, a rotation


of equal magnitude in the opposite direction.

21

Stretching Equation
P ( x, y )
P ' ( s x x, s y y )

P!

S y.y
y

P
x

P'




S x.x

sx x
sy y




sx
0

0
sy






x
y

S
P' S P

22

Stretching = tilting and projecting


(with weak perspective)


P'

sx x
sy y

sx

sy







x
y

sx

sy sy
0

x
y

23

Linear Transformation


P'

a b
c d





x
y

SVD





sin
cos

cos
sin




sx
0

0
sy

sy

sin
cos

cos
sin




sin
cos




cos
sin




x
y

sx
sy
0

sin
cos








cos
sin

x
y

24

Affine Transformation


P'

a b tx
c d ty




x
y




25

Viewing Position
Express world in new coordinate
system.
If origins same, this is done by taking
inner product with new coordinates.
Otherwise, we must translate.

26

Suppose, for example, we want to have the y axis


show how we are facing. We want to be at (7,3),
facing in direction (ct,st). The x axis must be
orthogonal, (-st,ct). If we want to express (x,y) in
this coordinate frame, we need to take: (ct,st)*(x7,y-3), and (-st,ct)*(x-7,y-3). This is done by
multiplying by matrix with rows (-st,ct) and (ct,st)

27

Simple 3D Rotation


 

cos
sin

sin
cos
0

0
0
1

x
y

 

x
y

x
y

n


Rotation about z axis.


Rotates x,y coordinates. Leaves z coordinates fixed.

28

Full 3D Rotation





cos
sin
0

sin
cos
0

 

0
0
1

 

cos
0
sin

0 sin
1
0
0 cos

 

 

1
0
0

0
cos
sin

0
sin
cos




Any rotation can be expressed as combination of three


rotations about three axes.


RR

1 0 0
0 1 0
0 0 1

Rows (and columns) of R are


orthonormal vectors.

R has determinant 1 (not -1).

29

Intuitively, it makes sense that 3D rotations can be


expressed as 3 separate rotations about fixed axes.
Rotations have 3 degrees of freedom; two describe an
axis of rotation, and one the amount.
Rotations preserve the length of a vector, and the angle
between two vectors. Therefore, (1,0,0), (0,1,0), (0,0,1)
must be orthonormal after rotation. After rotation, they
are the three columns of R. So these columns must be
orthonormal vectors for R to be a rotation. Similarly, if
they are orthonormal vectors (with determinant 1) R will
have the effect of rotating (1,0,0), (0,1,0), (0,0,1). Same
reasoning as 2D tells us all other points rotate too.
Note if R has determinant -1, then R is a rotation
plus a reflection.

30

3D Rotation + Translation
Just like 2D case

31

Transformation of lines/normals
2D. Line is set of points (x,y) for which
(x,y).(ab)T=0. Suppose we rotate points
by R. We want a matrix, T, so that:
R*(x,y) .T

32

3D Viewing Position
Rows of rotation matrix correspond to
new coordinate axis.

33

Rotation about a known axis


Suppose we want to rotate about u.
Find R so that u will be the new z axis.
u is third row of R.
Second row is anything orthogonal to u.
Third row is cross-product of first two.
Make sure matrix has determinant 1.

34

You might also like