Calculating Velocity Vector After Polygon Collision - Madison

Click For Summary
Madison is developing a 2D game and needs help calculating the resulting velocity vector after a polygon collision. The collision detection is straightforward, but determining the new velocity vector post-collision is challenging. The discussion clarifies that during a totally inelastic collision, the perpendicular component of the object's velocity to the collision edge should be eliminated, allowing the object to move parallel to the edge. A suggested equation for the final velocity vector involves projecting the initial velocity vector onto the edge vector of the polygon. Madison confirms that the provided equation effectively solves the problem.
mbrown3391
Messages
6
Reaction score
0
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

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.

Thanks,
Madison
 
Last edited by a moderator:
Physics news on Phys.org
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?
 
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 don't need to worry about bouncing at this point.
 
OK, I see... you're talking about a totally inelastic collision. I'm assuming you have (or can calculate) the velocity vector \vec{v} as well as the vector pointing along the edge of the polygon in the direction of the blue arrow, which I'll call \vec{p}, and also that you either have or can write a function to take dot products. Then you can just project \vec{v} on to \vec{p} to get your final velocity:
\vec{v}\,' = \frac{\vec{v}\cdot\vec{p}}{\vec{p}\cdot\vec{p}}\ \vec{p}

Incidentally, a general formula for inelastic collisions can be found on Wikipedia, http://en.wikipedia.org/wiki/Coefficient_of_restitution.
 
Thank you! that equation worked perfectly.
 
I built a device designed to brake angular velocity which seems to work based on below, i used a flexible shaft that could bow up and down so i could visually see what was happening for the prototypes. If you spin two wheels in opposite directions each with a magnitude of angular momentum L on a rigid shaft (equal magnitude opposite directions), then rotate the shaft at 90 degrees to the momentum vectors at constant angular velocity omega, then the resulting torques oppose each other...

Similar threads

  • · Replies 14 ·
Replies
14
Views
4K
  • · Replies 13 ·
Replies
13
Views
8K
  • · Replies 13 ·
Replies
13
Views
3K
  • · Replies 35 ·
2
Replies
35
Views
3K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
4K
  • · Replies 2 ·
Replies
2
Views
4K
Replies
1
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
Replies
8
Views
2K