Reflecting Velocities in Circle Collisions

191 Views Asked by At

I have a game where multiple balls move around a 2D map colliding with each other. When two balls collide, their velocities reflect off the vector between them.

After observing the collisions I noticed a problem.
When colliding balls do not collide head-on they bounce into each other.

Here is an example of the reflections I am using:
$V$: Velocity
$N$: Normal $$V=V - 2\times N\times(N\cdot V)$$

Case when balls bounce into each other:
$A_V$: Circle A's velocity
$B_V$: Circle B's velocity
$N$: normal between them $$(A_V\cdot N)=(B_V\cdot N)$$ enter image description here The question I need answered is this:
How can two balls bounce off each other without [the above] anomaly, while keeping a constant speed

Thank You!


(I would prefer answers without angles, but if that is the answer I will work with it)