Elastic collision between a circle and a point

154 Views Asked by At

In a 2D environment, I have a circle with velocity v, a stationary point (infinite mass), and I am trying to calculate the velocity of the circle after a perfectly elastic collision with the point.

This is what I've came up with:

$p$ is the position of the point

$c$ is the position of the circle

On a collision, the new velocity is $normalize(p - c) * velocity.magnitude$.

Example

Would this approach be right? If not, how do I correctly determine the velocities after a collision?

2

There are 2 best solutions below

1
On BEST ANSWER

Draw a line from the point through the centre of the circle at the moment of contact. The outward velocity vector of the circle after the collision is $-$ the reflection of the initial velocity vector across this line. This allows kinetic energy and angular momentum about the point to be conserved.

0
On

The arrow you have drawn for "new velocity" is actually the direction of the impulse that the point can give to the circle. That is, it is the direction in which the point can "push" the circle. The point does not have any ability to cancel out parts of the circle's incoming velocity that are not parallel to that arrow.

The arrow represents the direction of the difference of the new velocity minus the old velocity, not the direction of the new velocity alone.

So you need a new velocity vector equal in magnitude to the old one (because the collision is elastic) and the difference between the vectors has to be parallel to the line through the point and the circle's center. Draw a force triangle with the two velocities and their difference; it should be an isosceles triangle. It's easier to solve if you divide the isosceles triangle into two right triangles; one side of the right triangle is a component of the incoming velocity perpendicular to the impulse, which does not change, and the other side of each triangle is a component of either the incoming or outgoing velocity parallel to the impulse.

Notice what happens when a circle collides elastically with an immovable line. The line gives the circle an impulse perpendicular to the line, and the circle reflects off the line. Notice further that if we were to put a straight line through the stationary point so that it is exactly tangent to the circle when the circle touches the point, the impulse would be in exactly the same direction as the impulse given by the point alone. You can model the collision as a collision with that line instead of just the point if that makes it any easier to visualize.