Computer Graphics CSC 630 Lecture 2- Linear Algebra
2 What is Computer Graphics? Using a computer to generate an image from a representation. Model Image computer
3 Model Representations How do we represent an object? –Points –Mathematical Functions X 2 + Y 2 = R 2 –Polygons (most commonly used) Points Connectivity
4 Linear Algebra Why study Linear Algebra? –Deals with the representation and operations commonly used in Computer Graphics
5 What is a Matrix? A matrix is a set of elements, organized into rows and columns n columns m rows m×n matrix
6 What is a Vector? Vector: n × 1 matrix x y v
7 Representing Points and Vectors A 3D point –Represents a location with respect to some coordinate system A 3D vector –Represents a displacement from a position
8 Basic Operations Transpose: Swap rows with columns
9 Vector Addition Given v = [x y z] T and w = [a b c] T v + w = [x+a y+b z+c] T Properties of Vector addition –Commutative: v + w = w + v –Associative (u + v) + w = u + (v + w) –Additive Identity: v + 0 = v –Additive Inverse: v + (-v) = 0
10 Parallelogram Rule To visualize what a vector addition is doing, here is a 2D example: v w v+w
11 Vector Multiplication Given v = [x y z] T and a Scalar s and t –sv = [sx sy sz] T and tv = [tx ty tz] T Properties of Vector multiplication –Associative: (st)v = s(tv) –Multiplicative Identity: 1v = v –Scalar Distribution: (s+t)v = sv+tv –Vector Distribution: s (v+w) = sv+sw
12 Vector Spaces Consists of a set of elements, called vectors. The set is closed under vector addition and vector multiplication.
13 Dot Product and Distances Given u = [x y z] T and v = [a b c] T –vu = v T u = ax+by+cz The Euclidean distance of u from the origin is denoted by ||u|| and called norm or length –||u|| = sqrt(x 2 +y 2 +z 2 ) –Notice that ||u|| = sqrt(u u) –Unit vector ||u|| = 1, zero vector denoted 0 The Euclidean distance between u and v is sqrt((x-a) 2 +(y-b) 2 +(z-c) 2 )) and is denoted by ||u-v||
14 Properties of the Dot Product Given a vector u, v, w and scalar s –The result of a dot product is a SCALAR value –Commutative: vw = wv –Non-degenerate: vv=0 only when v=0
15 Angles and Projection Alternative view of the dot product vw=||v|| ||w|| cos( ) where is the angle between v and w v w v w v=w If v and w have length 1 … v·w = 0v·w = 1 v·w = cos θ θ
16 Angles and Projection If v is a unit vector (||v|| = 1) then if we perpendicularly project w onto v can call this newly projected vector u then ||u|| = vw w vu
17 Cross Product Properties The Cross Product c of v and w is denoted by v w c Is a VECTOR, perpendicular to the plane defined by v and w The magnitude of c is proportional to the sin of the angle between v and w The direction of c follows the right hand rule. ||v w||=||v|| ||w|| |sin | – is the angle between v and w v w=-(w v) v w vwvw
18 Cross Product Given 2 vectors v=[v 1 v 2 v 3 ], w=[w 1 w 2 w 3 ], the cross product is defined to be the determinant of where i,j,k are vectors
19 Matrices A compact way of representing operations on points and vectors 3x3 Matrix A looks like a ij refers to the element of matrix A in i th row and j th column
20 Matrix Addition Just add elements
21 Matrix Multiplication If A is an n k matrix and B is a k p then AB is a n p matrix with entries c ij where c ij = a is b sj Alternatively, if we took the rows of A and columns of B as individual vectors then c ij = A i B j where the subscript refers to the row and column, respectively Multiply each row by each column
22 Matrix Multiplication Properties Associative: (AB)C = A(BC) Distributive: A(B+C) = AB+AC Multiplicative Identity: I= diag(1) (defined only for square matrix) Identity matrix: AI = A NOT commutative: AB BA
23 Matrix Inverse If A and B are nxn matrices and AB=BA=I then B is the inverse of A, denoted by A -1 (AB) -1 =B -1 A -1 same applies for transpose
24 Determinant of a Matrix Defined on a square matrix (nxn) Used for inversion If det A = 0, then A has no inverse
25 Determinant of a Matrix For a nxn matrix, where A 1i determinant of (n-1)x(n-1) submatrix A gotten by deleting the first row and the ith column
26 Transformations Why use transformations? Create object in convenient coordinates Reuse basic shape multiple times Hierarchical modeling System independent Virtual cameras
27 Translation =+ =+
28 Properties of Translation = = = =
29 Rotations (2D)
30 Rotations 2D So in matrix notation
31 Rotations (3D)
32 Properties of Rotations order matters!
33 Combining Translation & Rotation
34 Combining Translation & Rotation
35 Scaling Uniform scaling iff
36 Homogeneous Coordinates can be represented as where
37 Translation Revisited
38 Rotation & Scaling Revisited
39 Combining Transformations where
40 Transforming Tangents
41 Transforming Normals