t 2 2 a a x y a x y y vector multiplication dot scalar
play

( ) = T = = 2 + 2 A A x y A x y y Vector - PDF document

To Do To Do Computer Graphics (Fall 2008) Computer Graphics (Fall 2008) Complete Assignment 0; e-mail by tomorrow Download and compile skeleton for assignment 1 COMS 4160, Lecture 2: Review of Basic Math Read instructions re setting


  1. To Do To Do Computer Graphics (Fall 2008) Computer Graphics (Fall 2008) � Complete Assignment 0; e-mail by tomorrow � Download and compile skeleton for assignment 1 COMS 4160, Lecture 2: Review of Basic Math � Read instructions re setting up your system � Ask TA if any problems, need visual C++ etc. http://www.cs.columbia.edu/~cs4160 � We won’t answer compilation issues after next lecture � Try to obtain textbooks, programming (using MRL lab). Let us know if there are any problems. � About first few lectures � Somewhat technical: core mathematical ideas in graphics � HW1 is simple (only few lines of code): Lets you see how to use some ideas discussed in lecture, create images Motivation and Outline Motivation and Outline Vectors Vectors � Many graphics concepts need basic math like linear algebra � Vectors (dot products, cross products, …) = � Matrices (matrix-matrix, matrix-vector mult., …) � E.g: a point is a vector, and an operation like translating or rotating points on an object can be a matrix-vector multiply � Length and direction. Absolute position not important � � � Chapters 2.4 (vectors) and 5.2.1,5.2.2 (matrices) Usually written as or in bold. Magnitude written as a a � Worthwhile to read all of chapters 2 and 5 � Use to store offsets, displacements, locations � Should be refresher on very basic material for most of you � But strictly speaking, positions are not vectors and cannot be added: a � If not understand, talk to me (review in office hours) location implicitly involves an origin, while an offset does not. Vector Addition Vector Addition Cartesian Coordinates Cartesian Coordinates A = 4 X + 3 Y a+b = b+a b a X � Geometrically: Parallelogram rule � X and Y can be any (usually orthogonal unit ) vectors � In cartesian coordinates (next), simply add coords  x  ( ) = T = = 2 + 2 A A x y A x y   y  

  2. Vector Multiplication Dot (scalar) product Vector Multiplication Dot (scalar) product b � Dot product (2.4.3) � Cross product (2.4.4) φ � Orthonormal bases and coordinate frames (2.4.5,6) a = φ = = a b i a b cos a b i b a i ? + = +   a b i ( c ) a b i a c i a b i � Note: book talks about right and left-handed − φ = 1 cos     coordinate systems. We always use right-handed = = ( ka b ) i a kb i ( ) k a b ( i ) a b   Dot product: some applications in CG Projections (of b on a) Projections (of b on a) Dot product: some applications in CG b � Find angle between two vectors (e.g. cosine of angle between light source and surface for shading) φ a � Finding projection of one vector on another (e.g. coordinates of point in arbitrary coordinate system) a b i → = φ = b a b cos → = b a ? a � Advantage: can be computed easily in cartesian components → = b a ? a a b i → = → = b a b a a 2 a a Vector Multiplication Vector Multiplication Dot product in Cartesian components Dot product in Cartesian components � Dot product (2.4.3)  x   x  • = a • b = a b ?     � Cross product (2.4.4) y y     a b � Orthonormal bases and coordinate frames (2.4.5,6)     x x • = a • b = + a b x x y y     a b a b y y     a b � Note: book talks about right and left-handed coordinate systems. We always use right-handed

  3. Cross (vector) product Cross product: Properties Cross (vector) product Cross product: Properties × = − × a b b a × = + × = φ x y z a b a b sin × = − × a b b a × = − y x z b × = a a 0 × = + y z x φ × + = × + × a ( b c ) a b a c × = − z y x × = × a ( kb ) k a b ( ) × = + z x y a × = − x z y � Cross product orthogonal to two initial vectors � Direction determined by right-hand rule � Useful in constructing coordinate systems (later) Cross product: Cartesian formula? Vector Multiplication Vector Multiplication Cross product: Cartesian formula? � Dot product (2.4.3) − x y z  y z y z  a b b a   � Cross product (2.4.4) × = = − a b x y z z x x z   a a a a b a b   � Orthonormal bases and coordinate frames (2.4.5,6) − x y z x y y x   b b b a b a b −  0 z y  x  a a b    × = * = − a b A b z 0 x y    � Note: book talks about right and left-handed a a b    − y x 0 z coordinate systems. We always use right-handed    a a b Dual matrix of vector a Coordinate Frames Coordinate Frames Orthonormal bases/coordinate frames Orthonormal bases/coordinate frames � Important for representing points, positions, locations � Any set of 3 vectors (in 3D) so that = = = u v w 1 � Often, many sets of coordinate systems (not just X, Y, Z) = = = � Global, local, world, model, parts of model (head, hands, …) u v i v w i u w i 0 = × w u v � Critical issue is transforming between these systems/bases � Topic of next 3 lectures = + + p ( p u u i ) ( p v v i ) ( p w w i )

  4. Constructing a coordinate frame Constructing a coordinate frame? Constructing a coordinate frame Constructing a coordinate frame? � Often, given a vector a (viewing direction in HW1), want to We want to associate w with a , and v with b � But a and b are neither orthogonal nor unit norm construct an orthonormal basis � And we also need to find u � Need a second vector b (up direction of camera in HW1) a = w � Construct an orthonormal basis (for instance, camera a coordinate frame to transform world objects into in HW1) × b w = u × b w = × v w u Matrices Matrices What is a matrix What is a matrix � Can be used to transform points (vectors) � Array of numbers (m×n = m rows, n columns) � Translation, rotation, shear, scale (more detail next lecture)  1 3  � Section 5.2.1 and 5.2.2 of text   � Instructive to read all of 5 but not that relevant to course 5 2     0 4   � Addition, multiplication by a scalar simple: element by element Matrix Matrix- -matrix multiplication matrix multiplication Matrix- Matrix -matrix multiplication matrix multiplication � Number of columns in first must = rows in second � Number of columns in first must = rows in second  1 3   1 3   9 2 7 3 3 13  3 6 9 4     3 6 9 4      5 2 =  5 2 19 44 61 26         2 7 8 3  2 7 8 3         0 4 0 4 8 28 3 2 1 2       � Element (i,j) in product is dot product of row i of first � Element (i,j) in product is dot product of row i of first matrix and column j of second matrix matrix and column j of second matrix

  5. Matrix- -matrix multiplication matrix multiplication Matrix- -matrix multiplication matrix multiplication Matrix Matrix � Number of columns in first must = rows in second � Number of columns in first must = rows in second  1 3   9 2 7 3 3 13   1 3   9 2 7 3 3 13   3 6 9 4   3 6 9 4          = = 5 2 19 44 61 26 5 2 19 44 61 26             2 7 8 3 2 7 8 3             0 4 8 28 3 2 1 2 0 4 8 28 3 2 1 2         � Element (i,j) in product is dot product of row i of first � Element (i,j) in product is dot product of row i of first matrix and column j of second matrix matrix and column j of second matrix Matrix Matrix- -matrix multiplication matrix multiplication Matrix- Matrix -Vector Multiplication Vector Multiplication � Number of columns in first must = rows in second � Key for transforming points (next lecture) � Treat vector as a column matrix (m×1)   1 3   3 6 9 4  5 2 NOT EVEN LEGAL!!    2 7 8 3    0 4   � E.g. 2D reflection about y-axis (from textbook) � Non-commutative (AB and BA are different in general) − −  1 0   x  x  =      � Associative and distributive 0 1 y y      � A(B+C) = AB + AC � (A+B)C = AC + BC Transpose of a Matrix (or vector?) Transpose of a Matrix (or vector?) Identity Matrix and Inverses Identity Matrix and Inverses   T 1 0 0  1 2   1 3 5    =    3 4    =  I × 0 1 0 2 4 6      3 3 5 6     0 0 1   = ) T T T ( AB B A − − 1 = 1 = AA A A I − = − − 1 1 1 ( AB ) B A

  6. Vector multiplication in Matrix form Vector multiplication in Matrix form � Dot product? • = T a b a b  x  b   = ( ) ( ) + + x y z y x x y y z z   a a a b a b a b a b   z   b � Cross product?  −   0 z y x a a b    × = = − a b A b * z 0 x y    a a b    − y x 0 z    a a b Dual matrix of vector a

Recommend


More recommend