Advanced C++ Programming Tutorial 3

From Chilipedia
Jump to: navigation, search

The vector dot product. This saucy little number is gonna turn your world upside down, project it, and other such bullshits. Super powerful math stuff do not missit.

Topics

Part 1

  • Vector dot product
  • Collision rebound physics calculation via vector operations

Part 2

  • Detecting collision
  • Implementing vector collision response (rebound) calculation

Video Timestamp Index

Tutorial 3.1


  • Introduction: using the vector dot product for rigid body physics problems 0:28
  • E.g., ball bouncing off a wall (line in 2D) with an arbitrary inclination
  • Using vector operations instead of angles & trigonometry
  • What is a dot product? 2:52
  • Basically: take vectors j and i: how much does a line j go in the direction of i
  • If j and i are perpendicular, their dot product is 0
  • How to calculate the dot product 5:54
  • Visual demo, 7:01
  • Angular version: a * b = ||a|| * ||b|| cos(theta) 8:49
  • Vector solution: a_x * b_x + a_y * b_y 9:36
  • Most common usage: "dot with a unit vector" 10:51
  • Determines how much a vector is going in the direction of the unit vector
  • Calculating the rebound velocity vector off an inclined wall 12:43
  • The most common meme in vectors: (v*w^)w^ 20:04

Tutorial 3.2

  • Introducing the simuluation setup: plank and balls 0:38
  • Coding the Plank class 1:08
  • Coding the Ball class 4:08
  • Spawning new balls and destructing when out of bounds 5:24
  • Detecting ball collision 6:06
  • Resolving ball collision (bounce) 15:20
  • Homework assignment 18:50

Links

Homework

Fix the funky bug in the collision code.

See also