Click here to load reader

View

218Download

0

Embed Size (px)

Linear Algebra and SVD(Some slides adapted from Octavia Camps)

Goals

Represent points as column vectors.

Represent motion as matrices.

Move geometric objects with matrix

multiplication.

Introduce SVD

Euclidean transformations

2D Translation

tt

PP

PP

2D Translation Equation

PP

xx

yy

ttxx

ttyy

PPtt

2D Translation using Matrices

PP

xx

yy

ttxx

ttyy

PPtt

tt PP

Scaling

PP

PP

Scaling Equation

PP

xx

yy

s.xs.x

PPs.ys.y

Rotation

PP

PP

Rotation Equations

Counter-clockwise rotation by an angle Counter-clockwise rotation by an angle

PP

xx

YYPP

XX

yy

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.

Degrees of Freedom

R is 2x2 R is 2x2 4 elements4 elements

BUT! There is only 1 degree of freedom: BUT! There is only 1 degree of freedom:

The 4 elements must satisfy the following constraints:The 4 elements must satisfy the following constraints:

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?

Rotation and Translation

100

tycos qsin q

tx-sin qcos q( )(1

y

x

)

100

tyab

tx-ba

( )(1

y

x

)Rotation, Scaling and Translation

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.

Stretching Equation

PP

xx

yy

SSxx.x.x

PPSSyy.y.y

Stretching = tilting and projecting

(with weak perspective)

SVD

For any matrix, M = R1DR2 R1, R2 are rotation matrices

D is a diagonal matrix.

This decomposition is unique.

Efficient algorithms can compute this (in

matlab, svd).

Linear Transformation

SVD

Affine Transformation

Simple 3D Rotation

n

n

n

zzz

yyy

xxx

21

21

21...

100

0cossin

0sincos

Rotation about z axis.

Rotates x,y coordinates. Leaves z coordinates fixed.

Full 3D Rotation

=

cossin0

sincos0

001

cos0sin

010

sin0cos

100

0cossin

0sincos

R

Any rotation can be expressed as combination of three

rotations about three axes.

=

100

010

001

T

RR

Rows (and columns) of R are

orthonormal vectors.

R has determinant 1 (not -1).

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.

3D Rotation + Translation

Just like 2D case