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.


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



Fix the funky bug in the collision code.

See also