1
votes

I'm currently making a 2D pool game where i have to use real physics simulation. I have done the circle collision and elastic collision so far, But I want a formula which can find the collision response velocity, which differs when a ball collides with other at different points thanks in advance.

2

2 Answers

3
votes

There are many approaches, but if you can afford to make the balls overlap a bit (that is, to make part of the ball "enter" the other) you can turn it into a spring-damper system and solve with Hooke's law.

Since Hooke's law give you the force, you need to integrate it to find the momentum. Momentum divided by mass is the velocity you're looking for.

Take a look at this excellent intro of spring physics for game development (that also has a link for his intro on numerical integration).

edit: if you're looking for a practical solution I suggest the Box2D physics engine.

0
votes

Pool collision can be considered as elastic collision throughout the board, with friction slowing down its movement.

Don;t think the collision response in terms of angles to the circle. Using vectors will ease the problem.

The circle-circle collision velocity response is easy: 1. When collision is detected 2. FInd the normal velocity of the balls acting toward the other ball. 3. Interchange the Normal velocity between the two balls 4. Resolve the velocity in x and y direction

A very helpful webiste to find the velocity response in terms of vectors: http://archive.ncsa.illinois.edu/Classes/MATH198/townsend/math.html