Math for CG (old version - contains a few cut slides on scalars).
Download
Report
Transcript Math for CG (old version - contains a few cut slides on scalars).
Linear Algebra Review for
Computer Graphics
Matt Boggus
CSE 3451/5541
Outline
• Coordinate Spaces
• Primitives
– Scalars
– Vectors
– Points
• Operations
• Matrices
Coordinate system
Boardwork examples: 1D, 2D, 3D coordinate
systems
Coordinate system in Unity
• 3D, left-handed coordinate system
Scalars
• Scalar value – a number (integer or real)
• Ex: the scale, weight, or magnitude of something
• Scalar field – 2D array
of scalar values
C# example:
float [,] temps;
temps = new float[50,50];
http://upload.wikimedia.org/wikipedia/commons/a/a8/Scalar_field.png
Scalar operations and terms
• Two fundamental operations
– Addition and multiplication
, S , S , S
Commutative
Associative
Distributive
Scalar operations and terms
• Additive identity
0
0 0
• Multiplicative identity:
1
1 1
• Additive inverse
0
• Multiplicative inverse
1
1 1
Vectors
• Vector – a quantity possessing both
magnitude and direction
• Visualized as directed line segments
• Mathematically described as n-tuples of
scalars
– Examples:
(0,0,0)
(x,y)
(r,g,b,a)
Vector operations – mathematically
• Vectors = n-tuples v v0 , v1 ,, vn 1
– Vector-vector addition
u v u0 , u1 , , u n 1 v0 , v1 , , vn 1
u0 v0 , u1 v1 , , u n 1 vn 1
– Scalar-vector multiplication
v v0 , v1 , , vn 1
– Vector decomposition
u 0u0 1u1 n 1u n 1
Numeric examples of vector operations
Vector operations – intuitively
• Vector-Vector Addition
– Visualize using head-to-tail axiom
Head-to-tail axiom
• Scalar-vector multiplication
– Resize (scale) the
directed line segment
α>1
length increases
0> α >1
length decreases
α<0
reverse direction
Scalar-vector multi.
Points
• Point – a location or position
• Visualized as dots
• Mathematically described as n-tuples of
scalars
– Examples:
(0,0,0)
(x,y)
(r,g,b,a)
– Note: points and vectors have the same
representation!
Coordinate system or frame
• Origin – a point
– Indicates the “center” of the coordinate systems
– Other points are defined relative to the origin
• Basis vectors
– A set of linearly independent vectors
– None of them can be written as a linear
combination of the others
Basis
vectors
located
at the
origin
Arbitrary
placement
of basis
vectors
Vectors and points in a coordinate
system
• Coordinate frame defined by point P0 ,
set of vectors v , v ,, v
0
1
n 1
• A vector v is
v 0 v0 1v1 n 1vn 1
• A point P is
P P0 0 v0 1v1 n 1vn 1
• Note: α and β indicate scalar values
Practice problem
• Given a point P = (2,-5,1) in a right handed
coordinate system, what is the point is a left
handed coordinate system?
Point-Vector operations
• P and Q are points, v is a vector
• Point-point subtraction operation
v P Q
• Vector-point addition operation
P v Q
P Q Q R P R
Working toward a distance metric
• The previous operations do not include a way to
estimate distance between points
• Create a new operation: Inner (dot) Product
– Input: two vectors
Output: scalar
– Properties we want: u v v u
u v w u w v w
v v 0 if v 0
00 0
For orthogonal vectors u v 0
Dot product logic
• If we can multiply two n-tuples, this implies
– Magnitude (length) of a vector
v
vv
– Distance between two points
P Q
P Q P Q
Dot product computation
• Dot product of two vectors, u and v
n 1
u v ui vi u0 v0 u1 v1 ... u n 1 vn 1
i 0
• Ex: (5,4,2) ∙ (1,0,1) = 5 * 1 + 4 * 0 + 2 * 1 = 7
• With some algebra we find that the dot
product is equivalent to u v u v cos
where θ is the angle between the two vectors
–cosθ = 0 orthogonal
–cosθ = 1 parallel
Projections
• We can determine if two points are “close” to each
other, what about vectors?
• How much of w is in the same direction as v?
• Given vectors v and w, decompose w into two parts,
one parallel to v and one orthogonal to v
w v u
w v v v u v v v
wv
vv
wv
u w v w
v
vv
Projection of one
vector onto another
Cross product
• Another formula that
varies as the angle
between vectors
change
http://en.wikipedia.org/wiki/Cross_product
Matrices
•
•
•
•
•
Definitions
Matrix Operations
Row and Column Matrices
Change of Representation
Relating matrices and vectors
What is a Matrix?
• A matrix is a set of elements, organized into
rows and columns
rows
columns
a b
c d
Definitions
• n x m Array of Scalars (n Rows and m Columns)
– n: row dimension of a matrix, m: column dimension
– m = n square matrix of dimension n
– Element aij , i 0, , n 1, j 0, , m 1
A aij
– Transpose: interchanging the rows and columns of a matrix
AT a ji
b0
• Column Matrices and Row Matrices
b
– Column matrix (n x 1 matrix): b bi 1
– Row matrix (1 x n matrix):
T
bn 1
b b0 b1 ... bn 1
Matrix Operations
• Scalar-Matrix Multiplication A aij
– Multiply every element by the scalar
C A B aij bij
• Matrix-Matrix Addition
– Add elements with same index
• Matrix-Matrix Multiplication
– A: n x l matrix, B: l x m C: n x m matrix
C AB cij
l 1
cij aik bkj
k 0
cij = the sum of multiplying
elements in row i of matrix a
times elements in column j of
matrix b
Matrix Operation Examples
a b e
c d g
f a e b f
h c g d h
a b e
c d g
f a e b f
h c g d h
a b e
c d g
f ae bg
h ce dg
af bh
cf dh
Matrix Operations
A A
• Properties of Scalar-Matrix Multiplication
A A
• Properties of Matrix-Matrix Addition
– Commutative:
– Associative:
AB BA
A B C A B C
• Properties of Matrix-Matrix Multiplication
ABC AB C
• Identity Matrix I (Square Matrix)
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1 if i j
I aij , aij
0 otherwise
AI A
IB B
Matrix Multiplication Order
• Is AB = BA? Try it!
a b e
c d g
e
g
f ae bg
h ce dg
af bh
cf dh
f a b ea fc eb fd
h c d ga hc gb hd
• Matrix multiplication is NOT commutative!
• The order of series of matrix multiplications
is important!
Inverse of a Matrix
• Identity matrix:
AI = A
• Some matrices have an
inverse, such that:
AA-1 = I
1 0 1
A 0 1 1
0 0 1
1 0 0
I 0 1 0
0 0 1
1 0 1
1
A 0 1 1
0 0 1
Inverse of a Matrix
• Do all matrices have a multiplicative inverse?
Consider this example, try to solve for A-1:
0 0 0
A 0 1 0
0 0 1
AA-100 =
a
1
A d
g
b
e
h
c
f
i
0*a+0*d+0*g=0≠1
Note: 1 is the element at 00 in the identity matrix
Inverse of Matrix Concatenation
• Inversion of concatenations
(ABC)-1 = ?
A*B*C*X=I
A * B * C * C-1 = A * B
A * B * B-1 = A
A * A-1 = I
Order is important, so X = C-1B-1A-1
Row and Column Matrices + points
• Column Matrix
– Row matrix
• Concatenations
– Associative
• By Row Matrix
x
p y
z
pT x
By convention
we will use
column matrices
for points
y
z
p Ap
p ABCp
AB T
BT A T
pT pT CT BT AT
Summary
• Primitives: scalars, vectors, points
• Operations: addition and multiplication
• Matrix representation and operations