Vectors Points Lines and Planes Jim Van Verth

  • Slides: 42
Download presentation
Vectors, Points, Lines and Planes Jim Van Verth (jim@essentialmath. com) Lars M. Bishop (lars@essentialmath.

Vectors, Points, Lines and Planes Jim Van Verth (jim@essentialmath. com) Lars M. Bishop (lars@essentialmath. com) Essential Math for Games

Geometric Representation • Problem § Represent geometric data in computer? • Solution § Vectors

Geometric Representation • Problem § Represent geometric data in computer? • Solution § Vectors and points § Can represent most abstract objects as combinations of these § E. g. lines, planes, polygons Essential Math for Games

What Is a Vector? • Geometric object with two properties § direction § length

What Is a Vector? • Geometric object with two properties § direction § length (if length is 1, is unit vector) • Graphically represented by Essential Math for Games

Scale • Graphically § change length of vector v by Essential Math for Games

Scale • Graphically § change length of vector v by Essential Math for Games

Addition • Graphically § put tail of second vector at head of first §

Addition • Graphically § put tail of second vector at head of first § draw new vector from tail of first to head of second b a a+b Essential Math for Games

Algebraic Vectors • Algebraically, vectors are more than this • Any entity that meets

Algebraic Vectors • Algebraically, vectors are more than this • Any entity that meets certain rules (lies in vector space) can be called ‘vector’ • Ex: Matrices, quaternions, fixed length polynomials • Mostly mean geometric vectors, however Essential Math for Games

Vector Space • Set of vectors related by +, · • Meet rules §

Vector Space • Set of vectors related by +, · • Meet rules § § § § v+w=w+v (v + w) + u = v + (w + u) v+0=v v + (-v) = 0 ( ) v = ( v) ( + )v = v + v (commutative +) (associative +) (identity +) (inverse +) (associative ·) (distributive ·) (v + w) = v + w (distributive ·) Essential Math for Games

Number Spaces • • • Cardinal – Positive numbers, no fractions Integer – Pos.

Number Spaces • • • Cardinal – Positive numbers, no fractions Integer – Pos. , neg. , zero, no fractions Rational – Fractions (ratios of integers) Irrational – Non-repeating decimals ( , e) Real – Rationals+irrationals Complex – Real + multiple of -1 a+bi Essential Math for Games

Real Vector Spaces • Usually only work in these • Rn is an n-dimensional

Real Vector Spaces • Usually only work in these • Rn is an n-dimensional system of real numbers § Represented as ordered list of real numbers (a 1, …, an) • R 3 is the 3 D world, R 2 is the 2 D world Essential Math for Games

Linear Combination • Combine set of n vectors using addition and scalar multiplication §

Linear Combination • Combine set of n vectors using addition and scalar multiplication § v = 1 v 1 + 2 v 2 + … + nvn • Collection of all possible linear combinations for given v 1… vn is called a span • Linear combination of 2 perpendicular vectors span a plane Essential Math for Games

Linear Dependence • A system of vectors v 1, … , vn is called

Linear Dependence • A system of vectors v 1, … , vn is called linearly dependant if for at least one vi § vi = 1 v 1 +…+ i-1 vi-1 + i+1 vi+1 +…+ nvn • Otherwise, linearly independent • Two linearly dependant vectors are said to be collinear § I. e. w = . v § I. e. they point the “same” direction Essential Math for Games

Vector Prerequisites Linear Dependence • Example • Center vector can be constructed from outer

Vector Prerequisites Linear Dependence • Example • Center vector can be constructed from outer vectors Essential Math for Games

Vector Basis • Ordered set of n lin. ind. vectors § = { v

Vector Basis • Ordered set of n lin. ind. vectors § = { v 1, v 2, …, vn} • Span n-dimensional space • Represent any vector as linear combo § v = 1 v 1 + 2 v 2 + … + nvn • Or just components § v = ( 1, 2, …, n) Essential Math for Games

Vector Representation • 3 D vector v represented by (x, y, z) § Use

Vector Representation • 3 D vector v represented by (x, y, z) § Use standard basis { i, j, k } § Unit length, perpendicular (orthonormal) § v = xi + yj + zk • Number of units in each axis direction v 3 v 1 v 2 Essential Math for Games

Vector Operations • • Addition: +, Scale: · Length: ||v|| Normalize: Essential Math for

Vector Operations • • Addition: +, Scale: · Length: ||v|| Normalize: Essential Math for Games

Addition • Add a to b b a a+b Essential Math for Games

Addition • Add a to b b a a+b Essential Math for Games

Scalar Multiplication • change length of vector v by Essential Math for Games

Scalar Multiplication • change length of vector v by Essential Math for Games

Length • Length § ||v|| gives length (or Euclidean norm) of v § if

Length • Length § ||v|| gives length (or Euclidean norm) of v § if ||v|| is 1, v is called unit vector § usually compare length squared • Normalize § v scaled by 1/||v|| gives unit vector Essential Math for Games

Vector Operations • Games tend to use most of the common vector operations §

Vector Operations • Games tend to use most of the common vector operations § Addition, Subtraction § Scalar multiplication • Two others are extremely common: § Dot product § Cross product Essential Math for Games

Dot product • Also called inner product, scalar product a b Essential Math for

Dot product • Also called inner product, scalar product a b Essential Math for Games

Dot Product: Uses • a equals ||a||2 • can test for collinear vectors §

Dot Product: Uses • a equals ||a||2 • can test for collinear vectors § if a and b collinear & unit length, |a • b| ~ 1 § Problems w/floating point, though • can test angle/visibility § a • b > 0 if angle < 90° § a • b = 0 if angle = 90° (orthogonal) § a • b < 0 if angle > 90° Essential Math for Games

Dot Product: Example • Suppose have view vector v and vector t to object

Dot Product: Example • Suppose have view vector v and vector t to object in scene (t = o - e) • If v • t < 0, object behind us, don’t draw e o v t Essential Math for Games

Dot Product: Uses • Projection of a onto b is a b Essential Math

Dot Product: Uses • Projection of a onto b is a b Essential Math for Games

Dot Product: Uses • Example: break a into components collinear and perpendicular to b

Dot Product: Uses • Example: break a into components collinear and perpendicular to b a b Essential Math for Games

Cross Product • Cross product: definition § returns vector perpendicular to a and b

Cross Product • Cross product: definition § returns vector perpendicular to a and b § right hand rule § length = area of parallelogram c b a Essential Math for Games

Cross Product: Uses • gives a vector perpendicular to the other two! • ||a

Cross Product: Uses • gives a vector perpendicular to the other two! • ||a b|| = ||a|| ||b|| sin( ) • can test collinearity § ||a b|| = 0 if a and b are collinear § Better than dot – don’t have to be normalized Essential Math for Games

Other Operations • Several other vector operations used in games may be new to

Other Operations • Several other vector operations used in games may be new to you: § Scalar Triple Product § Vector Triple Product • These are often used directly or indirectly in game code, as we’ll see Essential Math for Games

Scalar Triple Product • Dot product/cross product combo • Volume of parallelpiped u v

Scalar Triple Product • Dot product/cross product combo • Volume of parallelpiped u v • Test rotation direction § Check sign Essential Math for Games w

Triple Scalar Product: Example • Current velocity v, desired direction d on xy plane

Triple Scalar Product: Example • Current velocity v, desired direction d on xy plane • Take • If > 0, turn left, if < 0, turn right v v d d d v Essential Math for Games

Vector Triple Product • Two cross products • Useful for building orthonormal basis §

Vector Triple Product • Two cross products • Useful for building orthonormal basis § Compute and normalize: Essential Math for Games

Points • Points are positions in space — anchored to origin of coordinate system

Points • Points are positions in space — anchored to origin of coordinate system • Vectors just direction and length — freefloating in space • Can’t do all vector operations on points • But generally use one class in library Essential Math for Games

Point-Vector Relations • Two points related by a vector § (Q - P) =

Point-Vector Relations • Two points related by a vector § (Q - P) = v § P+v=Q v P Essential Math for Games Q

Affine Space • Vector, point related by origin § (P - O) = v

Affine Space • Vector, point related by origin § (P - O) = v § O+v=P P e 3 v O e 1 e 2 • Vector space, origin, relation between them make an affine space Essential Math for Games

Cartesian Frame • Basis vectors {i, j, k}, origin (0, 0, 0) • 3

Cartesian Frame • Basis vectors {i, j, k}, origin (0, 0, 0) • 3 D point P represented by (px, py, pz) • Number of units in each axis direction relative to origin pz o px Essential Math for Games py

Affine Combination • Like linear combination, but with points § P = a 1

Affine Combination • Like linear combination, but with points § P = a 1 P 1 + a 2 P 2 + … + an. Pn § a 1, …, an barycentric coord. , add to 1 • Same as point + linear combination § P = P 1 + a 2 (P 2 -P 1) + … + an (Pn-P 1) • If vectors (P 2 -P 1), …, (Pn-P 1) are linearly independent, {P 1, …, Pn} called a simplex (think of as affine basis) Essential Math for Games

Convex Combination • Affine combination with a 1, …, an between 0 and 1

Convex Combination • Affine combination with a 1, …, an between 0 and 1 • Spans smallest convex shape surrounding points – convex hull • Example: triangle Essential Math for Games

Points, Vectors in Games • Points used for models, position § vertices of a

Points, Vectors in Games • Points used for models, position § vertices of a triangle • Vectors used for velocity, acceleration § indicate difference between points, vectors Essential Math for Games

Parameterized Lines • Can represent line with point and vector § P + tv

Parameterized Lines • Can represent line with point and vector § P + tv P v Q • Can also represent an interpolation from P to Q § P + t(Q-P) § Also written as (1 -t)P + t. Q Essential Math for Games

Planes • 2 non-collinear vectors span a plane • Cross product is normal n

Planes • 2 non-collinear vectors span a plane • Cross product is normal n to plane n Essential Math for Games

Planes • Defined by § normal n = (A, B, C) § point on

Planes • Defined by § normal n = (A, B, C) § point on plane P 0 • Plane equation § Ax+By+Cz+D = 0 § D=-(A·P 0 x + B·P 0 y + C·P 0 z) Essential Math for Games

Planes • Can use plane equation to test locality of point n Ax+By+Cz+D >

Planes • Can use plane equation to test locality of point n Ax+By+Cz+D > 0 Ax+By+Cz+D = 0 Ax+By+Cz+D < 0 • If n is normalized, gives distance to plane Essential Math for Games

References • Anton, Howard and Chris Rorres, Elementary Linear Algebra, 7 th Ed, Wiley

References • Anton, Howard and Chris Rorres, Elementary Linear Algebra, 7 th Ed, Wiley & Sons, 1994. • Axler, Sheldon, Linear Algebra Done Right, Springer Verlag, 1997. • Blinn, Jim, Notation, Morgan Kaufmann, 2002. Essential Math for Games