How can I accurately calculate transferred spin in my 2D physics engine?

  • Level: Undergrad 
  • Thread starter Thread starter Tull
  • Start date Start date
  • Tags Tags
    Spin
Join the discussion
Registration is free. Start your own thread to ask a follow-up.
3 replies · 2K views
Tull
Messages
2
Reaction score
0
Hi folks. (I have no way of knowing if the prefix is at the right level)

I've been working on a very low scale, totally elastic 2D physics engine for a while, this is only for learning, it will serve no important purpose when it's complete, I'm just building it for fun really, to keep the brain matter working.

I'm only using circles as objects, I have the 'bounce' sorted and working fine at the point of the collision using some vector maths and reflections, but I've got a bit stuck where it comes to transferring spin/rotation from one object to another.

I think I've found all the angles and other variables I need, I just can't find the right way to put them all together.
I have the velocity of both objects. As a vector. And the angle of approach of both objects.
I have the Normal, centre point to centre point for the collision for both objects.
I have the tangent of the collision point.
I have the mass of the objects.
And I'll decide on a friction value at some point.

Now, my understanding of physics at this level comes purely from common sense and imagination, probably quite a dangerous combination! But I can see I need a common angle between the two objects, and I need a common rotation value, then calculate between the two how much rotation is transferred back and forth taking mass and friction into consideration. It's worth noting these objects could be traveling in any direction that cause a collision.

However, no matter how I x/y or (y/x)m or (v1/v2)/Pi*MassOfTheCentreOfTheEarth I end up with wild results, or something that doesn't look quite right. Part of my problem is, I don't read math and I'm a bit long in the tooth to start learning quadratic equations. I have on the other hand, been a programmer pretty much all my life and understand lines of code.

I don't want someone to write code for me, but I do need some help understanding the equations. Squiggle over squiggle multiplied by a dot and a squiggle just makes no sense to my eyes!

I have been searching for answers for this for a while, and I either find examples for irregular shaped objects, or the calculations go well beyond what I need including air flow and atmospherics and other variables I just don't want.

It may be I've been searching for the wrong keywords, either way, if anyone could point me in the right direction for some help I would be eternally grateful! Thank you.
 
Mathematics news on Phys.org
Friction and the elastic properties of the circles will influence how much momentum parallel to the line of contact is transferred. The details can be complicated, but once you fix that value, you can determine the linear and angular momentum change of the circles.
 
Thanks mfb. Yesh, I've got the bounce, the linear and momentum, thatkfully this is pretty well documented everywhere in game code forums. Spin, however, is more difficult to track down. I found a very comprehensive tutorial on billiard physics, but it was all very complex path notation which I just don't get. So do you mean the information I've already gathered in the 'bounce' calculation is what I want to be working from? I wonder if I'm over complicating things...
 
Momentum transfer parallel to the area is a single value. It will influence both the spin and the linear motion of the circles after the collision. Once you fix this value (which depends on details of the material of the objects), spin and linear motion follow from conservation of linear and angular momentum.