Physics Stack Exchange is a question and answer site for active researchers, academics and students of physics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

so I've been searching google for how to do this, but all anyone seems to care about is collision detection =p, and no results come close to teaching me how to calculate 2d elastic collision between two concave polygons.

I know how to solve elastic collisions between two 2d circles, but I can't find anything more complicated than that.

I'm also a very visual person, so it would be great if someone could show me how to do this or point me to a website! Thanks =)

share|cite|improve this question
The not-very-helpful answer is "you conserve momentum, energy, and angular momentum". I don't think anyone is going to offer a general solution because "concave polygons" are a huge and varied set and collisions between them is a even bigger set. Too many different possibilities. – dmckee Sep 24 '11 at 15:53
This is really two separate (hard) problems. One is that of finding the contact point on two moving (possibly) concave polygons, the other is computing the (or really, "a") physically correct impulses so that you can continue the simulation. The canonical reference on this is Brian Mirtich's PhD thesis, but it's hard to find online these days; this possible correction contains a link which seems to work. – genneth Sep 24 '11 at 16:12
Also in practical applications the third (and probably biggest) problem is how to achieve numerical stability and performance of the algorithm. Google for the chipmunk 2d physics engine for example and youll find a lot of featurelists most of which involve the techniques to stabilize the simulations. – BjornW Sep 25 '11 at 10:12

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.