Download as pdf or txt
Download as pdf or txt
You are on page 1of 76

Coordinates and

Transformations
MIT ECCS 6.837

many slides follow Steven Gortler’s book

1
Coordinates and
Transformations
MIT ECCS 6.837

many slides follow Steven Gortler’s book

2
Hierarchical modeling
• Many coordinate systems:
• Camera
• Static scene
• car
• driver
• arm
• hand
• ...

3
A Philosophical Point

Where is (0,0,0)?
A Philosophical Point

Where is (0,0,0)?
A Philosophical Point

Did it move?
Observation

Rarely do we use
“absolute” positions
in real life.
Coordinates
• We represent points with tuples of coordinates
such as
• But the tuples are meaningless without a
coordinate system

could be this point could be this point


in the red in the blue
coordinate system coordinate system

8
Different objects
• Points
• represent locations
• Vectors
• represent movement, force, displacement from A to B
• Normals
• represent orientation, unit length
• Coordinates
• numerical representation of the above objects
in a given coordinate system

9
Points & vectors are different
• The 0 vector has a fundamental meaning:
no movement, no force
• Why would there be a special 0 point?

• It’s meaningful to add vectors, not points


• Boston + NYC = ?

+ =?

10
Points & vectors are different
• Moving car
• points describe location of car elements
• vectors describe velocity, distance between pairs of
points
• If I translate the moving car to a different road
• The points (location) change
• The vectors (speed, distance between points) don’t

11
Matrices have two purposes
• (At least for geometry)
• Transform things
• e.g. rotate the car from facing
north to facing east

• Change coordinates
• e.g. given the driver's location in
the coordinate system of the car,
express it in the coordinate
system of the world

12
Goals for today
• How to define coordinate systems

• How to change coordinate systems

• How to transform objects

• Difference between points, vectors, normals,


and their coordinates

13
Plan
• Vectors

• Points

• Homogenous coordinates

• Normals (in the next lecture)

14
Vector space
• Roughly: Set of elements equipped with
addition and scalar multiplication

• There is a special element, the zero vector


• no displacement, no force

15
Vector space
• We can use a basis to produce all the vectors in
the space:
• Given n basis vectors
any vector can be written as

here:

16
Linear algebra notation

• can be written as

• Nice because it makes the basis


(coordinate system) explicit
• Shorthand:

• where bold means triplet 17


Linear transformation

• Transformation of the vector space

18
Linear transformation

• Transformation of the vector space so that

• Note that it implies


• Notation for transformations

19
Matrix notation
• Linearity implies

20
Matrix notation
• Linearity implies

• L is determined by

• Algebraic notation:

21
Algebraic notation
• The are also vectors in the same space
• Can be expressed in the same basis:

which gives us

22
Putting everything together

23
Two interpretations

• transforming the basis

• transforming the coordinates

24
So What?
• Many existing fast algorithms for linear algebra

• Convenient formulation to keep track of current


basis/coordinate system

25
Change of basis
• Critical in computer graphics
- world to car to arm to hand coordinate system
- Bezier to B splines and back

• Typical issues:
- Remembering which is M or M-1
- Keeping track of where you are

26
High-level advice

Output Input
Change of basis
• Assume we have two bases and
• And we have the coordinates of in

• Then

• This implies

28
Change of basis
• We have &
• Given the coordinate of in B:

• What are the coordinates in A?

29
Change of basis
• We have &
• Given the coordinate of in B:

• Replace B by its expression in A

• has coordinates in A
• Note how we keep track of the coordinate system
by having the basis on the left
30
Linear Transformations?
•L(p + q) = L(p) + L(q)
•L(ap) = a L(p)

31
Linear Transformations
•L(p + q) = L(p) + L(q)
•L(ap) = a L(p)

Translation
Similitudes is not linear:
Linear
Rigid / Euclidean
f(p) = p+t Scalin
Identit
g
f(ap) = ap+t
Translation ≠ a(p+t)Scaling
y Isotropic
Rotati = aReflection
f(p)
Shea
on
f(p+q) = p+q+t ≠ (p+t)+(q+t) = f(p)r + f(q)

32
Plan
• Vectors

• Points

• Homogenous coordinates

• Normals

33
Points vs. Vectors
• A point is a location
• A vector is a motion between two points
• Adding vectors is meaningful
• going 3km North + 4km East = going 5km North-East
• Adding points is not meaningful
• Boston location + New York location = ?
• Multiplying a point by a scalar?
• The zero vector is meaningful (no movement)
• Zero point ?
34
Affine space
• Points are elements of an affine space
• We denote them with a tilde

• Affine spaces are an extension of vector spaces

35
Algebra notation
• We like matrix-vector expressions
• We want to keep track of the frame
• Cheat a little for elegance; decide that 1 times a
point is the point

• is represented by 4 coordinates, where the


extra dummy coordinate is always 1 (for now)
36
Point-vector operations
• Subtracting points gives a vector

• Adding a vector to a point gives a point

37
Affine frames
• A frame is an origin plus a basis B
• We can obtain any point in the space by adding a
vector to the origin

• using the coordinates c of the vector in B

38
Recap
• Vectors can be expressed in a basis
• keep track of basis with left notation
• change basis
• Points can be expressed in a frame
(origin+basis)
• keep track of frame with left notation
• adds a dummy 4th coordinate always 1

39
Affine transformations
• Include all linear transformations
• Applied to the vector basis
• Plus translation

40
Affine matrix
• In 3D a 4 x 4 matrix
Affine transformation
• Applying an affine transform to point
Affine transformation

• Produce valid points (the last coordinate is 1)

• Produce valid frames


Linear component
• We know how to transform the vector basis

44
Linear component

• Note how we leave the fourth component alone


45
Translation component

• Express translation vector t in the basis

46
Translation

47
Full affine expression

How to get a new frame FM


or how to get the coordinates Mc after transformation
48
More notation properties
• If the fourth coordinate is zero, we get a vector
• Subtracting two points:

• Gives us

a vector (last coordinate = 0)


49
More notation properties
• Adding a point

to a vector

• Gives us

a point (fourth coordinate=1)

50
More notation properties
• Vectors are not affected by the translation part

because their 4th coordinate is 0


• If I rotate my moving car in the world, I want its
motion to rotate
• If I translate it, motion should be unaffected
51
Frames & hierarchical modeling
• Many coordinate systems (frames):
• Camera
• Static scene
• car
• driver
• arm
• hand
• ...

• Need to understand nested transformations


52
Frames & hierarchical modeling
• Example: what if I rotate the wheel of the moving
car:
• frame 1: world
• frame 2: car
• transformation: rotation

53
Similarity transformation
• Transformation S wrt car frame F

• If A goes from car frame to world frame:

Car World Transformed Transformed


world car

54
How are transforms combined?
Scale then Translate
(5,3)
Scale(2,2) (2,2) Translate(3,1)
(1,1) (3,1)
(0,0) (0,0)

Use matrix multiplication: p' = T ( S p ) = TS p


1 0 3 2 0 0 2 0 3
TS = 0 1 1 0 2 0 = 0 2 1
0 0 1 0 0 1 0 0 1

Caution: matrix multiplication is NOT commutative!


55
55
Non-commutative Composition
Scale then Translate: p' = T ( S p ) = TS p
(5,3)
Scale(2,2) (2,2) Translate(3,1)
(1,1) (3,1)
(0,0) (0,0)

Translate then Scale: p' = S ( T p ) = ST p


(8,4)
Translate(3,1) (4,2) Scale(2,2)
(1,1) (6,2)
(3,1)
(0,0)

56
Non-commutative Composition
Scale then Translate: p' = T ( S p ) = TS p
1 0 3 2 0 0 2 0 3
TS = 0 1 1 0 2 0 = 0 2 1
0 0 1 0 0 1 0 0 1

Translate then Scale: p' = S ( T p ) = ST p


2 0 0 1 0 3 2 0 6
ST = 0 2 0 0 1 1 = 0 2 2
0 0 1 0 0 1 0 0 1

57
Plan
• Vectors

• Points

• Homogenous coordinates

• Normals

58
Forward reference and eye
• The fourth coordinate is useful for perspective
projection
• Called homogenous coordinates

59
Homogeneous Coordinates in R 2

All points of the form

where we identify

for all nonzero c.


Some Exercises

• Convert (x,y) to homogeneous


coordinates.

• Convert the following points from


homogeneous coordinates:
- (1,5;1) 
- (12,-6;3) 
- (5,15;-5) 
Homogeneous Coordinates
•Add an extra dimension (same as frames)
• in 2D, we use 3-vectors and 3 x 3 matrices
• In 3D, we use 4-vectors and 4 x 4 matrices
•The extra coordinate is now an arbitrary value, w
• You can think of it as “scale,” or “weight”
• For transformations except
perspective, can set w=1
and not worry about it x' a b c x
=
y‘ d e f y
1 0 0 1 1
62
Points at Infinity

Encodes points
and directions!
Points at Infinity

Encodes points
and directions!

Challenge for math students:

What is the topology of


the projective plane?
Why homogeneous?
• This picture gives away almost
the whole story.

w=1

w=2

65
Perspective in 2D
• Camera at origin, looking along z, 90 degree
f.o.v., “image plane” at z=1

66
Perspective in 2D
The projected point in
homogeneous
coordinates
(we just added w=1):

67
Perspective in 2D

Projectively
equivalent

68
Perspective in 2D
We’ll just copy z to w,
and get the projected
point after
homogenization!

69
Homogeneous Visualization
• Divide by w to normalize (project)

(0,0,0)

(0, 0, 1) = (0, 0, 2) = … w=1


(7, 1, 1) = (14, 2, 2) = …
(4, 5, 1) = (8, 10, 2) = … w=2

70
Projective Equivalence – Why?
• For affine transformations,
adding w=1 in the end proved to be convenient.
• The real showpiece is perspective.

71
Fun example: Photo tourism
• Application of homogenous coordinates
• Goal: given N photos of a scene
• find where they were taken
• get 3D geometry for points in the scene

72
Step 1: point correspondences
• Extract salient points (corners) from images
• Find the same scene point in other images
• To learn how it’s done, take 6.815

73
Structure from motion
• Given point correspondences
• Unknowns: 3D point location, camera poses
• For each point in each image, write perspective
equations p 4

p1 p3 minimize
p2
f (R, T, P)
p5 p7
p6

Camera 1 Camera 3
R1,t1 Camera 2 R3,t3
R2,t2 74
Eye candy: photo tourism

QuickTime™ and a
MPEG-4 Video decompressor
are needed to see this picture.

75
That’s All for Today
• Further Reading
–Buss, Chapter 2

• Other Cool Stuff


–Algebraic Groups
–http://phototour.cs.washington.edu/
–http://phototour.cs.washington.edu/findingpaths/
–Free-form deformation of solid objects
–Harmonic coordinates for character articulation

76

You might also like