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
00  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 
vv
– 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
wv
 
vv
wv
 u  w  v  w 
v
vv
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:
AB BA
A  B  C  A  B  C
• Properties of Matrix-Matrix Multiplication
ABC   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
pT  pT CT BT AT
Summary
• Primitives: scalars, vectors, points
• Operations: addition and multiplication
• Matrix representation and operations