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