1 / 13

# CSC 480 Computer Graphics K. Kirby Spring 2006 - PowerPoint PPT Presentation

CSC 480 Computer Graphics K. Kirby Spring 2006. Characteristics of Linear Transformations A qualitative review. Linear maps R 2  R 2 and R 3  R 3. It's all about what happens to the basis. Definition of linearity. Linear algebra review. Maps R 2  R 2 and R 3  R 3.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'CSC 480 Computer Graphics K. Kirby Spring 2006' - tamas

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Computer Graphics

K. Kirby

Spring 2006

Characteristics of Linear Transformations

A qualitative review

Linear maps R2R2 and R3R3

It's all about what happens to the basis.

Definition of linearity.

Linear algebra review

Maps R2R2 and R3R3

Determinant

Inverse

Rank

Image

Kernel

Singular values & vectors

Condition number

Eigenvalues & eigenvectors

Some Kinds of 2D Linear Operators

Identity

Uniform scale

Non-uniform scale

Simple reflection

Rotation

Shear

Singular operators

Symmetric operators

General operators

det M = -1/2

det M = 0

Determinants

| det M | = the factor by which M changes measure

sign det M = the change in orientation caused by M

Q: Why does det AB = det A det B ?

det  0

rank 3

rank 2

“singular”

det = 0

rank 1

rank 0

Rank

The rank of M is the dimension of its image.

Four different 3D operators M with different ranks.

The conditionof M is the ratio of the largest

to smallest nonzero singular value.

It measures the “squash” of M.  1.

 = 6

Singular Values

The singular values of M are the principle radii of the image

of the unit sphere under M.

This image is an ellipse in 2D, an ellipsoid in 3D, etc.

1 = 4

2 = 2/3

M

If  is large, then Mx=b is hard to solve numerically for x.

Why?

If a M leaves a the direction of a vector x unchanged,

x is called a real eigenvector of M.

The factor by which the length of x changes is called

the eigenvalue of M for x.

different direction-

y not a real eigenvector

y

My

M

x

Mx = 2x

same direction-

x is a real eigenvector

with eigenvalue 2

m1

m2

m3

m2

m1

m3

Orthogonal Operators

An operator is orthogonal if it maps the standard

basis (e1, e2, e3) to an orthonormal set (one-to-one).

e2

M =

e1

e3

This means m1•m1 = 1, m1• m2 = 0, etc.

In short: MTM = I

So for an orthogonal matrix, the inverse is merely the transpose.

A rotation is an orthogonal operator with det = 1.

Translations in N dimensions can be represented by

shears in N+1 dimensions.

d

z=1

plane

M = 1 0 d1

0 1 d2

0 0 1

y

x

Affine Transformations

An affine transformation is a linear transformation followed

by a translation: A(x) = Mx + d.

d

• Give 4x4 matrices for the following affine transformations of three dimensional space.

• You may leave the matrices in factored form if you like, but each entry must be in rational radical form.

• A translation that takes the point (6,7,8) to the point (2,2,2).

• A rotation by 45 degrees about the line from (1,1,1) to (2,1,1).

• A reflection through the plane y= 2.

• A transformation that takes the shape “A>” on the xy-plane centered at (1,1,0) to the shape “>” centered at the origin, still lying in the xy plane, scaled uniformly to half its size. (The z dimension is not affected.)

• The inverse of the transformation in #4.

Representation of Spatial Rotations

Angle-axis representation

x

Matrix representation

Rx

Angle-axis representation

[ 1 1 1 ]T

60o

You can confirm this in OpenGL:

double m[16] ;

glMatrixMode( GL_MODELVIEW ) ;

glRotated( 60.0, 1,1,1 ) ;

glGetDoublev( GL_MODELVIEW_MATRIX, m );

print(m) ;

we will show

this in class

Matrix representation

0.667 -0.333 0.667 0

0.667 0.667 -0.333 0

-0.333 0.667 0.667 0

0 0 0 1