1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Game Collision Physics

  1. Jan 12, 2010 #1
    I am currently programming a 2-dimensional game and am creating a class that will allow for collision detection with any polygon defined by a set of points. The actual collision detection was easy, however i am having trouble coming up with an equation to describe the resulting velocity vector of an object after the collision.

    http://www.cheeseparade.com/diagram.png [Broken]

    Based on the diagram above, can anyone give me an equation that will return the blue vector as a function of the green vector, regardless of the angle of the green vector? All the red points are known information at any given time.

    Last edited by a moderator: May 4, 2017
  2. jcsd
  3. Jan 12, 2010 #2


    User Avatar
    Homework Helper

    I'm not quite sure what I'm looking at here... what should the relationship be between the blue vector and green vector? Or in other words, what kind of physical situation are you trying to simulate? What happens to the object that collides with the polygon?
  4. Jan 12, 2010 #3
    when the object collides, the component of its velocity that is perpendicular to the edge that it collides with should be eliminated so that the object continues on a path parallel to the edge. i dont need to worry about bouncing at this point.
  5. Jan 12, 2010 #4


    User Avatar
    Homework Helper

    OK, I see... you're talking about a totally inelastic collision. I'm assuming you have (or can calculate) the velocity vector [itex]\vec{v}[/itex] as well as the vector pointing along the edge of the polygon in the direction of the blue arrow, which I'll call [itex]\vec{p}[/itex], and also that you either have or can write a function to take dot products. Then you can just project [itex]\vec{v}[/itex] on to [itex]\vec{p}[/itex] to get your final velocity:
    [tex]\vec{v}\,' = \frac{\vec{v}\cdot\vec{p}}{\vec{p}\cdot\vec{p}}\ \vec{p}[/tex]

    Incidentally, a general formula for inelastic collisions can be found on Wikipedia, http://en.wikipedia.org/wiki/Coefficient_of_restitution.
  6. Jan 12, 2010 #5
    Thank you! that equation worked perfectly.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook