week 4 - monday. what did we talk about last time? vectors
TRANSCRIPT
Cross product
The cross product of two vectors finds a vector that is orthogonal to both
For 3D vectors u and v in an orthonormal basis, the cross product w is:
xyyx
zxxz
yzzy
z
y
x
vuvu
vuvu
vuvu
w
w
w
vuw
Things to remember
Vectors can represents points or directions
The norm of a vector gives its length The dot product of two vectors gives
a measure of how much they point in the same direction A scalar!
The cross product of two vectors gives a third vector, orthogonal to both of the original vectors
A matrix
A matrix M is a set of p x q scalars with each element named mij, where 0 ≤ i ≤ p – 1 and 0 ≤ j ≤ q – 1
We display them as p rows and q columns
1,11,10,1
1,11110
1,00100
qppp
q
q
mmm
mmm
mmm
M
Identity matrix
The identity or unit matrix I is a square matrix whose diagonal is all ones with zeroes elsewhere
10000
01000
00010
00001
I
Operations
We will be interested in a number of operations on matrices, including: Addition Scalar multiplication Transpose Trace Matrix-matrix multiplication Determinant Inverse
Matrix-matrix addition
Similar to vector addition, matrix-matrix addition gives as its result a new matrix made up of element by element additions
The two matrices must be the same size ][][][ ijijijij nmnm NM
Scalar-matrix multiplication Similar to scalar-vector multiplication, scalar-
matrix addition results in a matrix where each element is multiplied by the scalar
Properties 0M = 0 1M = M a(bM) = (ab)M a0 = 0 (a+b)M = aM + bM a(M + N) = aM + aN
][ ijama MT
Transpose of a matrix
Transposing a matrix means exchanging its rows for columns
It has the effect of mirroring the matrix around its diagonal (or close to it, if not square)
Properties (aM)T = aMT
(M + N)T = MT + NT
(MT)T = M (MN)T = NTMT
][ jiT mM
Trace of a matrix
The trace of a square matrix is the sum of its diagonal elements
This is useful in defining quaternion conversions
1
0
)tr(n
iiimM
Matrix-matrix multiplication
Multiplication MN is legal only if M is p x q and N is q x r
Each row of M and each column of N are combined with a dot product and put in the corresponding row and column element
𝐌𝐍=𝐓=[𝑡 𝑖𝑗 ]=[∑𝑘=0
𝑞− 1
𝑚𝑖𝑘𝑛𝑘𝑗]
Properties of matrix-matrix multiplication
Properties: (LM)N = L(MN) (L + M)N = LN + MN MI = IM = M
Matrix-matrix multiplication is not commutative
We can treat a vector as an n x 1 matrix and do matrix-vector multiplication similarly
Determinant
The determinant is a measure of the "magnitude" of a square matrix
We'll focus on determinants for 2 x 2 and 3 x 3 matrices
100111001110
0100)det( mmmmmm
mmMM
222120
121110
020100
)det(
mmm
mmm
mmm
MM211200221001201102
211002201201221100
mmmmmmmmm
mmmmmmmmm
Subdeterminant
The subdeterminant or cofactor dij of matrix M is the determinant of the (n – 1) x (n – 1) matrix formed when row i and column j are removed
Below is d02 for a 3 x 3 matrix M
201121102120
111002 mmmm
mm
mmd
Adjoint
The adjoint of a matrix is a form useful for transforming surface normals
We can also use the adjoint when finding the inverse of a matrix
We need the subdeterminant dij to define the adjoint The adjoint A of an arbitrary sized matrix M is:
For a 3 x 3:
jijiij da )()1()adj( M
221202
211101
201000
)adj(
ddd
ddd
ddd
M
Multiplicative inverse of a matrix
For a square matrix M where |M| ≠ 0, there is a multiplicative inverse M-
1 such that MM-1 = I For implicit inverse, we only need to
find v in the equation u = Mv, done as follows:
For cases up to 4 x 4, we can use the adjoint:
),,det(
),,det(
),,det(
||1
umm
mum
mmu
Mv
yx
zx
zy
z
y
x
v
v
v
)adj(11 MM
M
Notes about the inverse
For cases larger than 4 x 4, other methods are necessary: Gaussian elimination LU decomposition
Fortunately, we never need more than 4 x 4 in graphics
Properties of the inverse: (M-1)T = (MT)-1
(MN)-1 = N-1M-1
Orthogonal matrices
A square matrix is orthogonal if and only if its transpose is its inverse MMT = MTM = I
Lots of special things are true about an orthogonal matrix M |M| = ± 1 M-1 = MT
MT is also orthogonal ||Mu|| = ||u|| Mu Mv iff u v If M and N are orthogonal, so is MN
An orthogonal matrix is equivalent to an orthonormal basis of vectors lined up together
Homogeneous notation
Why do we often have vectors of 4 things or 4 x 4 matrices in graphics?
We have points (locations) and vectors (directions)
What's really confusing is that we represent them the same way (in what looks like a vector for both)
We need to translate points but translation isn't meaningful for vectors
A 3 x 3 matrix can rotate, scale, or shear, but it can't translate
How we do it
We add an extra value to our vectors It's a 0 if it’s a direction It's a 1 if it's a point
Now we can do a rotation, scale, or shear with a matrix (with an extra row and column):
1000
0
0
0
222120
121110
020100
mmm
mmm
mmm
M
Translations
Then, we multiply by a translation matrix (which doesn't affect a vector)
We'll cover how we make the transforms we want starting Friday
1000
100
010
001
z
y
x
t
t
t
T