2. Objectives
• Introduce concepts such as dimension and basis
• Introduce coordinate systems for representing vectors spaces and
frames for representing affine spaces
• Discuss change of frames and bases
• Introduce homogeneous coordinates
2
3. Linear Independence
• A set of vectors v1, v2, …, vn is linearly independent if
α1v1+α2v2+.. αnvn=0 iff α1=α2=…=0
• If a set of vectors is linearly independent, we cannot represent one in
terms of the others
• If a set of vectors is linearly dependent, as least one can be written in
terms of the others
3
4. Dimension
•In a vector space, the maximum number of linearly
independent vectors is fixed and is called the
dimension of the space
•In an n-dimensional space, any set of n linearly
independent vectors form a basis for the space
•Given a basis v1, v2,…., vn, any vector v can be written
as
v=α1v1+ α2v2 +….+αnvn
where the {αi} are unique
4
5. Representation
• Until now we have been able to work with geometric entities
without using any frame of reference, such as a coordinate system
• Need a frame of reference to relate points and objects to our
physical world.
• For example, where is a point? Can’t answer without a reference system
• World coordinates
• Camera coordinates
5
6. Coordinate Systems
•Consider a basis v1, v2,…., vn
•A vector is written v=α1v1+ α2v2 +….+αnvn
•The list of scalars {α1, α2, …. αn}is the representation
of v with respect to the given basis
•We can write the representation as a row or column
array of scalars
6
a=[α1 α2 …. αn]T
=
α
α
α
n
2
1
.
7. Example
• v=2v1+3v2-4v3
• a=[2 3 –4]T
• Note that this representation is with respect to a particular basis
• For example, in OpenGL we start by representing vectors using the
object basis but later the system needs a representation in terms of
the camera or eye basis
7
9. Frames
• A coordinate system is insufficient to represent points
• If we work in an affine space we can add a single point, the origin, to
the basis vectors to form a frame
9
P0
v1
v2
v3
10. Representation in a Frame
• Frame determined by (P0, v1, v2, v3)
• Within this frame, every vector can be written as
v=α1v1+ α2v2 +….+αnvn
• Every point can be written as
P = P0 + β1v1+ β2v2 +….+βnvn
10
11. Confusing Points and Vectors
Consider the point and the vector
P = P0+ β1v1+ β2v2 +….+βnvn
v=α1v1+ α2v2 +….+αnvn
They appear to have the similar representations
p=[β1β2β3] v=[α1α2α3]
which confuses the point with the vector
A vector has no position
11
v
p
v
Vector can be placed anywhere
point: fixed
12. A Single Representation
If we define 0•P = 0 and 1•P =P then we can write
v=α1v1+ α2v2 +α3v3= [α1 α2 α3 0][v1 v2 v3 P0]
T
P = P0+ β1v1+ β2v2 +β3v3= [β1 β2 β3 1][v1 v2 v3 P0]
T
Thus we obtain the four-dimensional homogeneous
coordinate representation
v = [α1α2 α3 0]T
p = [β1β2 β3 1]T
12
13. Homogeneous Coordinates
The homogeneous coordinates form for a three dimensional
point [x y z] is given as
p =[x’ y’ z’ w] T
=[wx wy wz w] T
We return to a three dimensional point (for w≠0) by
x←x’/w
y←y’/w
z←z’/w
If w=0, the representation is that of a vector
Note that homogeneous coordinates replaces points in three
dimensions by lines through the origin in four dimensions
For w=1, the representation of a point is [x y z 1]
13
14. Homogeneous Coordinates and
Computer Graphics
• Homogeneous coordinates are key to all computer graphics systems
• All standard transformations (rotation, translation, scaling) can be
implemented with matrix multiplications using 4 x 4 matrices
• Hardware pipeline works with 4 dimensional representations
• For orthographic viewing, we can maintain w=0 for vectors and w=1 for
points
• For perspective we need a perspective division
14
15. Change of Coordinate Systems
• Consider two representations of a the same vector with respect to
two different bases. The representations are
15
v=α1v1+ α2v2 +α3v3 = [α1 α2 α3] [v1 v2 v3] T
=β1u1+ β2u2 +β3u3 = [β1 β2 β3] [u1 u2 u3] T
a=[α1 α2 α3 ]
b=[β1 β2 β3]
where
16. Representing second basis in terms of
first
Each of the basis vectors, u1,u2, u3, are vectors that
can be represented in terms of the first basis
16
u1 = γ11v1+γ12v2+γ13v3
u2 = γ21v1+γ22v2+γ23v3
u3 = γ31v1+γ32v2+γ33v3
v
17. Matrix Form
The coefficients define a 3 x 3 matrix
and the bases can be related by
see text for numerical examples
17
a=MT
b
γγγ
γγγ
γγγ
3231
232221
131211
33
M =
18. Change of Frames
• We can apply a similar process in homogeneous
coordinates to the representations of both points and
vectors
• Any point or vector can be represented in either frame
• We can represent Q0, u1, u2, u3 in terms of P0, v1, v2, v3
18
Consider two frames:
(P0, v1, v2, v3)
(Q0, u1, u2, u3) P0 v1
v2
v3
Q0
u1
u2
u3
19. Representing One Frame in Terms of the
Other
u1= γ11v1+γ12v2+γ13v3
u2= γ21v1+γ22v2+γ23v3
u3= γ31v1+γ32v2+γ33v3
Q0= γ41v1+γ42v2+γ43v3+γ44P0
19
Extending what we did with change of bases
defining a 4 x 4 matrix
1γγγ
0γγγ
0γγγ
0γγγ
434241
333231
232221
131211
M =
20. Working with Representations
Within the two frames any point or vector has a
representation of the same form
a=[α1 α2 α3 α4] in the first frame
b=[β1 β2 β3β4 ] in the second frame
where α4=β4= 1 for points and α4=β4= 0 for vectors and
The matrix M is 4 x 4 and specifies an affine transformation in
homogeneous coordinates
20
a=MT
b
21. Affine Transformations
• Every linear transformation is equivalent to a change in frames
• Every affine transformation preserves lines
• However, an affine transformation has only 12 degrees of freedom
because 4 of the elements in the matrix are fixed and are a subset of
all possible 4 x 4 linear transformations
21
22. The World and Camera Frames
•When we work with representations, we work with n-
tuples or arrays of scalars
•Changes in frame are then defined by 4 x 4 matrices
•In OpenGL, the base frame that we start with is the
world frame
•Eventually we represent entities in the camera frame
by changing the world representation using the
model-view matrix
•Initially these frames are the same (M=I)
22
23. Moving the Camera
If objects are on both sides of z=0, we must move
camera frame
23
−
1000
d100
0010
0001
M =