# Perfect Sphere's colliding using only vectors

## Main Question or Discussion Point

The problem I have is I need to find the force applied to a perfect sphere after colliding with another perfect sphere. For both spheres I have:

position as <x,y>
Velocity as <x,y>
mass
coefficient of restitution

I am writing a program which simulates a bunch of balls bouncing around so I need to have an series of equations that when using the above values for two balls (that I know are colliding) it gives a force (as <x,y>) that is applied to the current sphere. The force being applied instantaneously.

I have searched online and read up on http://en.wikipedia.org/wiki/Inelastic_collision (which only does one dimensional) and other sites like http://www.hoomanr.com/Demos/Elastic2/ . Of the sites that do go into two dimensional they use angle and magnitude, or directly change the velocity of the sphere. I only want the force applied during the collision. I have a decent knowledge of basic physics but for whatever reason I just cannot get this to work properly.

What I currently have is a Frankenstein of the wiki page that works relatively well, but it treats every collision as head-on so it isn't ideal.

Related Other Physics Topics News on Phys.org
Bobbywhy
Gold Member
drfrev, I'm not qualified to help you find the force applied to a perfect sphere after colliding with another perfect sphere using a simulation.

I do, however, have a suggestion that may assist you. I have more than 50 years experience playing billiards and pool. In these games we cause one perfect sphere to collide with another perfect sphere. We shooters learn to control the momentum of the first perfect sphere (cue ball) so as to impart a particular desired momentum to the second perfect sphere (object ball). If you experiment with these real-world objects you might gain some insight on the issue, and thereby learn to control your simulation more effectively. Go out and shoot some pool or billiards.

Last edited:
ShayanJ
Gold Member
We have $F=\frac{\Delta p}{\Delta t}$.If $\Delta t$ approaches zero for non-zero $\Delta p$,F approaches infinity.This is the ideal situation of a momentary force.But things are not ideal in the real world.$\Delta t$ may be very small but it is not zero,so the force maybe very large but not infinity.The Force maybe even a complex function of time but if we consider a small enough $\Delta t$ we may assume its constant.But what is its value?well,that depends on $\Delta p$ and the value you want to assign to $\Delta t$. But$\Delta p$ can only be determined using the conservation of momentum so this scheme of force description of a collision,isn't fundamental and is of less use than the method using the conservation of momentum.

A.T.
I only want the force applied during the collision.
How long is "during"? See what Shyan said.

but it treats every collision as head-on so it isn't ideal.
Connect the centers of the balls with a line. That is the collision normal. Now you can decompose all forces, velocities into normal and tangential components. The normal direction is just like the 1D version. The tangential forces depend on frictional parameters, and introduce spin, so you need parameters for rotational inertia as well, if friction is non-zero.

This is a common issue when simulating contact problems. You're trying to start with some initial conditions and time stepping forward using some suitable equation (state at t = i+1 = function of state at t = i), but the problem here is that the physics are boring for long periods of time, and then for an instant, the forces are huge. You will find it extremely difficult to deal with this using a standard time-stepping algorithm.

I suggest you use some mixed formulation. You have analytic equations for the positions of the balls before any collisions occur, then you need to find some way of detecting a collision (again, this can be done analytically): distance between two ball centres <= sum of the ball radii. At this stage you then use momentum conservation to instantaneously modify the two balls' velocities, and you end up with a new set of trajectories.

This will be a far more accurate (and faster) method than integrating forces with direct time-stepping.

sophiecentaur