![Page 1: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/1.jpg)
1Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Representation
Ed AngelProfessor of Computer Science,
Electrical and ComputerEngineering, and Media Arts
University of New Mexico
![Page 2: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/2.jpg)
2Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Objectives
• Introduce concepts such as dimensionand basis
• Introduce coordinate systems forrepresenting vectors spaces and framesfor representing affine spaces
•Discuss change of frames and bases• Introduce homogeneous coordinates
![Page 3: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/3.jpg)
3Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Linear Independence
•A set of vectors v1, v2, …, vn is linearlyindependent if
α1v1+α2v2+.. αnvn=0 iff α1=α2=…=0• If a set of vectors is linearly independent,we cannot represent one in terms of theothers
• If a set of vectors is linearly dependent, asleast one can be written in terms of theothers
![Page 4: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/4.jpg)
4Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Dimension
• In a vector space, the maximum number oflinearly independent vectors is fixed and iscalled the dimension of the space
• In an n-dimensional space, any set of n linearlyindependent vectors form a basis for the space
• Given a basis v1, v2,…., vn, any vector v can bewritten as
v=α1v1+ α2v2 +….+αnvn
where the {αi} are unique
![Page 5: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/5.jpg)
5Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Representation
•Until now we have been able to work withgeometric entities without using any frameof reference, such as a coordinate system
•Need a frame of reference to relate pointsand objects to our physical world.
- For example, where is a point? Can’t answerwithout a reference system
- World coordinates- Camera coordinates
![Page 6: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/6.jpg)
6Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Coordinate Systems
• Consider a basis v1, v2,…., vn
• A vector is written v=α1v1+ α2v2 +….+αnvn
• The list of scalars {α1, α2, …. αn}is therepresentation of v with respect to the givenbasis
• We can write the representation as a row orcolumn array of scalars
a=[α1 α2 …. αn]T=
!!!!!
"
#
$$$$$
%
&
'
'
'
n
2
1
.
![Page 7: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/7.jpg)
7Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Example
• v=2v1+3v2-4v3
• a=[2 3 –4]T
•Note that this representation is withrespect to a particular basis
•For example, in OpenGL we start byrepresenting vectors using the objectbasis but later the system needs arepresentation in terms of the camera oreye basis
![Page 8: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/8.jpg)
8Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Coordinate Systems
•Which is correct?
•Both are because vectors have no fixedlocation
vv
![Page 9: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/9.jpg)
9Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Frames
•A coordinate system is insufficient torepresent points
• If we work in an affine space we can adda single point, the origin, to the basisvectors to form a frame
P0
v1
v2
v3
![Page 10: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/10.jpg)
10Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Representation in a Frame
•Frame determined by (P0, v1, v2, v3)•Within this frame, every vector can bewritten as
v=α1v1+ α2v2 +α3v3
•Every point can be written as P = P0 + β1v1+ β2v2+β3v3
![Page 11: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/11.jpg)
11Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Confusing Points and Vectors
Consider the point and the vectorP = P0 + β1v1+ β2v2 +β3v3
v=α1v1+ α2v2 +α3v3
They appear to have the similar representationsp=[β1 β2 β3] v=[α1 α2 α3]which confuses the point with the vectorA vector has no position v
pv
Vector can be placed anywherepoint: fixed
![Page 12: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/12.jpg)
12Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
A Single Representation
If we define 0•P = 0 and 1•P =P then we can writev=α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-dimensionalhomogeneous coordinate representation
v = [α1 α2 α3 0 ] T
p = [β1 β2 β3 1 ] T
![Page 13: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/13.jpg)
13Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Homogeneous Coordinates
The homogeneous coordinates form for a threedimensional 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) byx←x’/wy←y’/wz←z’/wIf w=0, the representation is that of a vectorNote that homogeneous coordinates replaces points in
three dimensions by lines through the origin in fourdimensions
For w=1, the representation of a point is [x y z 1]
![Page 14: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/14.jpg)
14Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Homogeneous Coordinatesand Computer Graphics
•Homogeneous coordinates are key to allcomputer graphics systems
- All standard transformations (rotation,translation, scaling) can be implemented withmatrix multiplications using 4 x 4 matrices
- Hardware pipeline works with 4 dimensionalrepresentations
- For orthographic viewing, we can maintain w=0for vectors and w=1 for points
- For perspective we need a perspective division
![Page 15: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/15.jpg)
15Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Change of CoordinateSystems
•Consider two representations of a thesame vector with respect to two differentbases. The representations are
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
![Page 16: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/16.jpg)
16Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Representing secondbasis in terms of first
Each of the basis vectors, u1,u2, u3, are vectorsthat can be represented in terms of the firstbasis
u1 = γ11v1+γ12v2+γ13v3u2 = γ21v1+γ22v2+γ23v3u3 = γ31v1+γ32v2+γ33v3
v
![Page 17: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/17.jpg)
17Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Matrix Form
The coefficients define a 3 x 3 matrix
and the bases can be related by
see text for numerical examples
a=MTb
!!!
"
#
$$$
%
&
'''
'''
'''
3231
232221
131211
33
M =
![Page 18: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/18.jpg)
18Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Change of Frames
• We can apply a similar process in homogeneouscoordinates to the representations of both pointsand vectors
• Any point or vector can be represented in eitherframe
• We can represent Q0, u1, u2, u3 in terms of P0, v1, v2, v3
Consider two frames:(P0, v1, v2, v3)(Q0, u1, u2, u3) P0 v1
v2
v3
Q0
u1u2
u3
![Page 19: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/19.jpg)
19Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Representing One Frame inTerms of the Other
u1 = γ11v1+γ12v2+γ13v3u2 = γ21v1+γ22v2+γ23v3u3 = γ31v1+γ32v2+γ33v3Q0 = γ41v1+γ42v2+γ43v3 +P0
Extending what we did with change of bases
defining a 4 x 4 matrix
!!!!
"
#
$$$$
%
&
1'''
0'''
0'''
0'''
434241
333231
232221
131211
M =
![Page 20: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/20.jpg)
20Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Working with Representations
Within the two frames any point or vector has arepresentation of the same form
a=[α1 α2 α3 α4 ] in the first frameb=[β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 affinetransformation in homogeneous coordinates
a=MTb
![Page 21: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/21.jpg)
21Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Affine Transformations
•Every linear transformation is equivalentto a change in frames
•Every affine transformation preserveslines
•However, an affine transformation hasonly 12 degrees of freedom because 4 ofthe elements in the matrix are fixed andare a subset of all possible 4 x 4 lineartransformations
![Page 22: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/22.jpg)
22Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
The World and CameraFrames
• When we work with representations, we workwith n-tuples or arrays of scalars
• Changes in frame are then defined by 4 x 4matrices
• In OpenGL, the base frame that we start with isthe world frame
• Eventually we represent entities in the cameraframe by changing the world representationusing the model-view matrix
• Initially these frames are the same (M=I)
![Page 23: Ed Angel Professor of Computer Science, Electrical and ...angel/CS433/LECTURES/CS433_11.pdf · Consider the point and the vector P = P 0 + β 1 v 1 + β 2 v 2 +β 3 v 3 v=α 1 v 1](https://reader033.vdocument.in/reader033/viewer/2022051410/602e09fccb74d459c46340ac/html5/thumbnails/23.jpg)
23Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005
Moving the Camera
If objects are on both sides of z=0, we must movecamera frame
!!!!
"
#
$$$$
%
&
'
1000
d100
0010
0001
M =