1 / 58

Geometric Intuition

Geometric Intuition. Randy Gaul. Talk Outline. Vectors, Points and Basis Matrices Rotation Matrices Dot product and how it’s useful Cross product and how it’s useful Extras. Prerequisites. Matrix multiplication How to apply dot/cross product Vector normalization

Download Presentation

Geometric Intuition

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Geometric Intuition Randy Gaul

  2. Talk Outline • Vectors, Points and Basis Matrices • Rotation Matrices • Dot product and how it’s useful • Cross product and how it’s useful • Extras

  3. Prerequisites • Matrix multiplication • How to apply dot/cross product • Vector normalization • Basic understanding of sin/cos • Basic idea of what a plane is

  4. Vectors • Formal definition • Input or output from a function of vector algebra • Informal definition • Scalar components representing a direction and magnitude (length) • Vectors have no “location”

  5. Points and Vectors • A point P and Q is related to the vector V by: • P – Q = V • This implies that points can be translated by adding vectors

  6. Points and Vectors (2) • Lets define an implied point O • O represents the origin • Any point P can be expressed with a vector V: • P = O + V • Vectors point to points, when relative to the origin!

  7. Euclidean Basis • Standard Euclidean Basis (called E3) • Geometrically the x, y and z axes

  8. Euclidean Basis (2) • Given 3 scalars i, j and k, any point in E3 can be represented

  9. Linear Combination • Suppose we have a vector V • Consists of 3 scalar values • Below V written in “shorthand” notation

  10. Linear Combination (2) • V can be written as a linear combination of E3 • This is the “longhand” notation of a vector

  11. Basis Matrices • E3 is a basis matrix • Many matrices can represent a basis • Any vector can be represented in any basis Note: Different i, j and kvalues are used on leftand right http://en.wikipedia.org/wiki/Change_of_basis

  12. Rotation Matrices • A rotation matrix can rotate vectors • Constructed from 3 orthogonal unit vectors • Can be called an “orthonormal basis” • E3 is a rotation matrix!

  13. Rotation Matrices (2) • Rotation matrices consist of an x, y and z axis • Each axis is a vector y z X

  14. Rotation Matrices (3) • Multiplying a rotation and a vector rotates the vector • This is a linear combination

  15. Dot Product • Comes from law of cosines • Full derivation here • For two vectors uand v:

  16. Shortest Angle Between 2 Vectors • Assume u and v are of unit length • Result in range of 0, 1 • No trig functions required

  17. How Far in a Given Direction? • Given point P and vector V • How far along the V direction is P? x P V y

  18. How Far in a Given Direction? (2) • Normalize V • Dot V and P (treat P as vector) • Explanation: • Cosine scaled by the length of P is equivalentto the distance P travels in the direction V

  19. Planes • Here’s the 3D plane equation

  20. Planes • Here’s the 3D plane equation • WAIT A SECOND

  21. Planes • Here’s the 3D plane equation • WAIT A SECOND • THAT’S THE DOT PRODUCT

  22. Planes (2) • a, b and c form a vector, called the normal • d is magnitude of the vector • Represents distance of plane from origin

  23. Planes (3) • d is interesting • d is scaled by length n

  24. Planes and the Dot Product • Dot P with the plane normal: • is distance along normal P travels • is scaled by length of normal

  25. Planes and the Dot Product (2) • 2D visualization, assume normal () is unit plane x P y

  26. Signed Distance P to Plane • Take subtract d • Explanation: • is distance P travels along normal • Subtract d (distance of plane from origin) • This gives distance of P to the plane

  27. Project P onto Plane • 2D visualization, assume normal () is unit plane x = P y

  28. Rotation Matrices and Dot Product • Given matrices A and B • A * B is to dot the rows of A with columns of B • Lets assume A and B are rotation matrices http://en.wikipedia.org/wiki/Matrix_multiplication

  29. Rotation Matrices and Dot Product (2) • That’s a lot of dot products! • Try: A * B * vector V • V is rotated by A, and then rotated by B • What does A * B mean? • Each element is cos between a column of A and row of B

  30. Rotation Matrices and Dot Product (3) • A = , B = • Lets start multiplying these guys

  31. Rotation Matrices and Dot Product (4) • We start by performing: • is the x axis of A • is x components of the x, y and z axis of B

  32. Rotation Matrices and Dot Product (5) • What does do? • Computes the contribution of B’s x components along the x axis of A! • Every single element of A * B can be thought of in this way

  33. Point in Convex Hull • Test if point is inside of a hull • Compute plane equation of hull faces • Compute distance from plane with plane equation • If all distances are negative, point in hull • If any distance is positive, point outside hull • Works in any dimension • Can by used for basic frustum culling

  34. Point in OBB • An OBB is a convex hull! • Hold your horses here… • Lets rotate point P into the frame of the OBB • OBB is defined with a rotation matrix, so invert it and multiply P by it • P is now in the basis of the OBB • The problem is now point in AABB

  35. Point in Cylinder • Rotate cylinder axis to the z axis • Ignoring the z axis, cylinder is a circle on the xy plane • Test point in circle in 2D • If miss, exit no intersection • Get points A and B. A is at top of cylinder, B at bottom • See if point’s z component is less than A’s and greater than B’s • Return intersection • No intersection

  36. Bumper Car Damage? • Two bumper cars hit each other • One car takes damage • How much damage is dealt, and to whom?

  37. Bumper Car Damage Answer • Take vector from one car to another, T • Damage dealt: • 1.0 - Abs( Dot( velocity, T ) * collisionDamage )

  38. Distance Point P to Line http://www.randygaul.net/2014/07/23/distance-point-to-line-segment/

  39. Closest Point to Segment from P • Take and compute a plane C • C’s normal is / ||, and offset d is: • d = dot( / ||, A ) • Compute distance P from C • If C is negative, closest point is A • Repeat process for B

  40. Visualization in 2D P C / ||

  41. Cross Product • Operation between vectors • Produces a vector orthogonal to both input vectors

  42. Cross Product Handedness http://en.wikipedia.org/wiki/Cross_product

  43. Cross Product Details http://upload.wikimedia.org/wikipedia/commons/thumb/6/6e/Cross_product.gif/220px-Cross_product.gif

  44. Plane Equation from 3 Points • Given three points A, B and C • Calculate normal with: Cross( C – A, B – A ) • Normalize normal • Compute offset d: dot( normal, A (or B or C) )

  45. Intersection Segment and Plane • Compute distance A to Plane: da • Compute distance B to Plane: db • If da * db < 0 • Intersection = A + (da / (da – db)) * (B – A) • Else • No intersection

  46. Segment Intersects Triangle UVW • If intersects plane triangle’s plane • Compute intersection point P with plane • For each edge along UVW, cross Va and P • Dot result with plane normal • If dot result < 0 • No intersection • Hit back side of UVW if dot( , normal ) > 0 • Else • No intersection

  47. Segment Intersects Triangle UVW (2) normal P

  48. Affine Transformations • Given matrix A, point x and vector b • An affine transformation is of the form: • Ax + b

  49. Affine Transformations • Given 3x3 matrix A, point x and vector b • An affine transformation is of the form: • Ax + b • With a 4x4 matrix we can represent Ax + b in block formation:

  50. Translation • Construct an affine transformation such that when multiplied with a point, translates the point by the vector b • I is the identity matrix, and means no rotation (or scaling) occurs

More Related