Download presentation

Presentation is loading. Please wait.

Published byCristina Cupp Modified over 3 years ago

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

2
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

3
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

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

5
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

6
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

7
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 ·)

8
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

9
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

10
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

11
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

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

13
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 )

14
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

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

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

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

18
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

19
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

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

21
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°

22
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

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

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

25
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

26
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

27
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

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

29
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

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

31
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

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

33
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

34
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

35
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)

36
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

37
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

38
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

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

40
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 )

41
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

42
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.

Similar presentations

OK

7.1 Scalars and vectors Scalar: a quantity specified by its magnitude, for example: temperature, time, mass, and density Chapter 7 Vector algebra Vector:

7.1 Scalars and vectors Scalar: a quantity specified by its magnitude, for example: temperature, time, mass, and density Chapter 7 Vector algebra Vector:

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google