# Vectors, Points, Lines and Planes Jim Van Verth Lars M. Bishop

## Presentation on theme: "Vectors, Points, Lines and Planes Jim Van Verth Lars M. Bishop"— Presentation transcript:

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 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 (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 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 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 v + w = w + v (commutative +) (v + w) + u = v + (w + u) (associative +) v + 0 = v(identity +) v + (-v) = 0(inverse +) ( ) v = ( v)(associative ·) ( + )v = v + v(distributive ·) (v + w) = v + w (distributive ·)

Essential Math for Games 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 R n is an n-dimensional system of real numbers Represented as ordered list of real numbers (a 1,…,a n ) R 3 is the 3D world, R 2 is the 2D world

Essential Math for Games Linear Combination Combine set of n vectors using addition and scalar multiplication v = 1 v 1 + 2 v 2 + … + n v n Collection of all possible linear combinations for given v 1 … v n 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, …,v n is called linearly dependant if for at least one v i v i = 1 v 1 +…+ i-1 v i-1 + i+1 v i+1 +…+ n v n 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 Linear Dependence Example Center vector can be constructed from outer vectors Vector Prerequisites

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

Essential Math for Games Vector Representation 3D 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 v1v1 v3v3 v2v2

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

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 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 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 Games Dot Product: Uses a 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 90°

Essential Math for Games 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, dont draw v t o e

Essential Math for Games 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 a b

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

Essential Math for Games 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 – dont have to be normalized

Essential Math for Games 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 well see

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

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

Essential Math for Games 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 Vectors just direction and length free- floating in space Cant do all vector operations on points But generally use one class in library

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

Essential Math for Games Vector, point related by origin (P - O) = v O + v = P Vector space, origin, relation between them make an affine space Affine Space v P O e3e3 e2e2 e1e1

Essential Math for Games Cartesian Frame Basis vectors {i, j, k}, origin (0,0,0) 3D point P represented by (p x, p y, p z ) Number of units in each axis direction relative to origin o pxpx pzpz pypy

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

Essential Math for Games Convex Combination Affine combination with a 1,…,a n 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 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 Can also represent an interpolation from P to Q P + t(Q-P) Also written as (1-t)P + tQ P v Q

Essential Math for Games 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 plane P0 Plane equation Ax+By+Cz+D = 0 D=-(A·P0 x + B·P0 y + C·P0 z )

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

Essential Math for Games 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, Notation, Notation, Morgan Kaufmann, 2002.

Download ppt "Vectors, Points, Lines and Planes Jim Van Verth Lars M. Bishop"

Similar presentations