# How to calculate the resulting velocitys and rotation speed after two concave polygons collide in 2d

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 =)

-
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