My friend is programming a curling application for the Android. He needs a way of calculating the results of perfectly elastic collisions in 2 dimensions with perfectly round objects (curling stones in this case, naturally). I know what the basic formula for the conservation of momentum is for perfectly elastic collisions, and I remember doing some problems with it in my college physics course, but I don't remember doing problems in which the objects are moving toward one another at strange angles. All the problems that I remember doing with this involved one of the objects staying put while the other one ran into it. Come to think of it, I don't think we ever had to consider the effects that the curvature of the objects would have on one another. I've been trying to find decent resources for this just by Googling it, but I haven't found much that's of any use. Does anyone know where I can find this kind of information? Any help is greatly appreciated.