I'm trying to figure out a way to determine the force two objects collide in.

I have two vectors defining their linear velocity at the time of impact, their mass and their angular velocity. Keep in mind this is all for a 2D physics engine.

I don't think it's as simple as adding up these values and figuring out if it's large enogh it makes a large impact since that doesn't take into account if the two objects are travelling in the same direction (as an example).

Any ideas?


1 Answer 1


High school physics should do the trick here, preserve total energy (unless you want energy to dissipate into friction, heat and deformation) and preserve total momentum, which will give you the result of the impact. Adding rotation to the equation makes it a bit more tricky (although not so much in 2D), preserving angular momentum as well, do you want to go there?

Actually getting the force which is applied, you need to look at the characteristics of the impact, the most simple assumption is that the force is constant during the impact, in which case, the force is the change in momentum (known as the impulse) divided by the duration of the impact.

Do you really want to know the applied force (useful for damage models, but rarely for simple physics), or are you just looking to determine final velocities?

  • \$\begingroup\$ I want the applied force \$\endgroup\$
    – meds
    Commented Dec 27, 2010 at 9:46
  • \$\begingroup\$ @meds; In that case you need to know more about the colliding objects, at the very least (for the simple assumption of constant force) the duration of the impact. \$\endgroup\$
    – falstro
    Commented Dec 27, 2010 at 9:49
  • 1
    \$\begingroup\$ -1 This in no way answered the question. This should be a comment, not an answer. \$\endgroup\$ Commented Dec 27, 2010 at 18:14
  • \$\begingroup\$ @AttackingHobo; he asked for ideas, and as such it is answer to the question. He wants the applied force, it states that the simplest approximation is impulse/duration of impact. More explicitly it is the derivative of momentum wrt time. But sure, I'll take the -1. \$\endgroup\$
    – falstro
    Commented Dec 27, 2010 at 19:55
  • 1
    \$\begingroup\$ @AttackingHobo: If you believe that an answer is not an answer then down vote it. Otherwise let it slide. People telling other people that their responses are not answers is annoying; after all, if you think there is a better answer that could be written then write it yourself. Problem solved. \$\endgroup\$ Commented Mar 31, 2011 at 3:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .