Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Hey all, I am trying to take into consideration the effect of inertia of the initial rotation of a ball, hitting a surface, into the exit velocity vector of the ball.

My current theory is this:

  1. Assume Ball initial rotation is Ri
  2. Calculate an exit Velocity vector without any consideration for the ball's initial rotation, call this Ve
  3. Rotate Ve by an angle proportionate to Ri [while limiting the rotation, so ball new vector does not point into surface]. Call this new vector rVe
  4. Calculate exit rotation of ball, by calculating it as a portion of max ball rotation speed, bas on angle between rVe & Vi using dot product of these two vectors

Does this sound right to you? Am I missing something here? Is there an easier way to do this?

share|improve this question
Have you tried it and observed the results? – Ipsquiggle Sep 8 '10 at 16:30
You can use the <sub> tag to write subscripts. – mmyers Sep 8 '10 at 16:42
you may have to take masses into account here. Two balls of different masses spinning at the same rate will react differently when hitting a static wall - the lighter ball will be more affected by the spin. In your example, conservation of energy should hold, this includes energy from moment of inertia. – eli Sep 8 '10 at 20:28
I assume you mean rotational velocity? As rotation without rotational velocity wouldn't make any difference in the calculation. – Kaj Sep 8 '10 at 22:41
+1 to mmyers's comment; I just edited in subscripts to make it look nicer. – Ricket Sep 8 '10 at 22:48
up vote 2 down vote accepted

I believe that you're missing consideration of both rotational momentum, and acceleration. See the answer by Danik on your other question.

The impact imparts a frictional force to the surface of the ball in a particular direction, tangential to the ball's surface. That force, combined with the ball's momentum, can be used to determine the rotational acceleration in the direction of the impact vector. If the ball is already spinning, that acceleration is going to act against whatever rotational velocity is already present.

In certain cases (perfectly rigid balls, instantaneous collisions) the rotational velocity is roughly equivalent to the force * some fudge factor. But for more correct simulations (ball deforms, contact time during which the force is applied is non-zero), you're modelling acceleration against the mass/momentum of the ball to determine the velocity delta over time.

That's for rotational velocity changes. To model how the initial rotation of the ball pre-collision affects the output velocity, again you're modelling the force acting on the surface of the ball.

E.g.: A ball spinning to the left impacting on a surface travelling straight ahead, the surface acts against the ball, so the left-hand spin is reduced (will tend towards a forward spin instead). But similarly, the ball acts against the surface, imparting a force against the ball, changing the output velocity so the ball skews to the left as well.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.