Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Angular Collision Resolution question

  1. Dec 11, 2007 #1
    hi guys, i'm making a game that requires a bit of physics...

    I'm trying to implement a 2d physics engine which will have rotation as well as local forces i.e. forces that could rotate the object. The problem i'm facing is that if objects collide, their velocity at the point of collision can be calculated as linear velocity + tangential velocity due to rotation at that point. However i cant figure out how to transfer momentum from one object to another, since the momentum is mixed up as angular as well as lateral motion. For example the momentum from the angular motion of one object can be transfered as lateral momentum to anotehr object through a collision depending on to what degree the center of the target object is in line with the collision. However the equation of conservation of momentum requires initial velocity, final velocity and mass. theres no provision for angular momentum xfer.

    The closest thing i can think of is taking the tangential velocity + lateral velocity at taht point as the velocity, and the mass + moment of inertia as M

  2. jcsd
  3. Dec 11, 2007 #2
    Wow - that's a really interesting problem. I'm bumping it back up to see if anyone else has any good suggestions, because I'm really not sure of the best way to handle it.

    My gut tells me that you're going to have the freedom to pick some parameter like elasticity that will be needed to fix the proportion of energy that gets transferred to linear motion vs. rotational motion. While that might be tricky to do in a physically accurate way, it might also give you a free parameter to tweak until you like the response you see.

    That doesn't address your basic question, though. I'll have to think about it and hope that someone else will offer something as well.
  4. Dec 11, 2007 #3
    By the way, as a starting point I would (and am) consider first the problem of an object bouncing off of a flat plane of infinite mass, i.e. a wall. With no rotational dynamics, we just have angle of reflection = angle of incidence. If the object (think tennis ball) is rotating, however, we can probably agree on how the angle should change qualitatively. Also, with no initial rotation but some angle other than pi/2, some degree of spin should be imparted to the ball, which should also affect the angle of reflection.

    Can we derive a reasonable answer just by demanding separate conservation of momentum and energy?
  5. Dec 12, 2007 #4
    hmmm, i've thought of this some more and here is where i am.. when an object collides, you can take the total momentum + the total momentum due to rotation and apply it to the collision... however the crucial factor here is that this angular momentum needs to be resolved in some direction so to speak... if the collision occurs from the bottom on the left side of an object rotating counter clockwise, then the rotation adds force to the collision.. hwoever if it collides on the right side from the bottom the rotation causes the object to pull away from the otehr object reducing the force of the collision so to speak...

    the other solution woudl be to find otu the tangential velocity at the point of collision.. but then the problem of converting that tangential velocity to momentum occurs... especially some momentum taht can be added with the linear momentum. i will probablly need to choose between one of these two and neither seems very appealing.

    thanks for replying belliott, i've considered that... its sort of like this.. when a collision occurs theres a velocity component that is along the direction of collision and tehres a velocity component tahts perpendicular to the direction of collision... if we seperate the velocities like this its possible to apply the formula for conservation of momentum and energy to a 1D collision instead of a 2D one... the other component thats perpendicular usually remains the same. however the reason a ball will spin is because of friction.. if the friction is 0 then angle of incidence is equal to angle of reflectance... however if it is not zero then some amount of the momentum of the ball is transfered to teh wall.. since teh wall cant move its transfered back to teh ball. however its transfered as a local force at the point of collision.. hence if the coeff of friction is one the angle of reflectance would be 0 and u would have teh ball jump straight up with lots of spin. at least thats how i see it..

    and i'd realllllly appreciate any help i can get with teh momentum problem... thanks.
    Last edited: Dec 12, 2007
  6. Dec 12, 2007 #5
    I'm assuming you're trying to make perfectly inelastic collisions, right? in the case of a sphere (or in a 2d game, a circle), the two objects are going to follow the rules of a simple (non-spinning) collision, with an added component of a vector that is perpendicular to the direction of collision with a magnitude proportional to the rotational inertia and coefficient of friction between the two circles. When the circle spins clockwise, the magnitude of this tangential vector would be positive, when the circle spins counter-clockwise, the magnitude would be negative.
    What I mean to say is that the objects would move as if they collided without spin; because the rotation will always have to be parallel to the plane of motion, it will have no effect on the circle’s velocity. This however, doesn’t mean that finding the resultant velocities will be easy. Let’s pretend you have two pucks (circles) colliding, we’ll call these Pa and Pb. The first angle you’ll need is the direction from Pa’s center of gravity to Pb’s center of gravity; this will be sort of like your reference angle. The components of the pucks’ velocities that are perpendicular to this reference angle (henceforth, Ra) will be unaffected. You then, once you have determined the horizontal and vertical components of the velocities of Pa and Pb relative to Ra, may simply add the remaining vectors and divide by two.
    (We’re assuming the capacity for Pa to absorb energy or transfer it , is equal to that of Pb)
    The rotational inertia (whoops I may have gotten off the subject), is just transferred as an amount equal to that of the rotational inertia of the first object, only in the opposite direction. You have to know the coefficient of friction between the two pucks, and you would add to the rotational inertia just as you would add to regular inertia.

    so, rotational inertia in a 2d environment, as I see it, will be independent of the motion of the objects.

    If you’re using Game Maker for this simulation, I could give you some code examples in finding the relative horizontal and vertical components (relative to Ra), and you might also get help from this site
  7. Dec 12, 2007 #6
    Thanks AI, but i'm not trying to do circle on circle collision.. its strictly poly on poly collision and i guess i forgot to mention that. circle on circle collision would probablly have been easy since no collision would have caused angular motion except if friction is considered... poly on poly collision however is a differnet story.

    i could have a long rod and a ball slam into one end of the long rod and have it rotate... or slam into the center of the rod and have it not rotate much.... the problem is explained in my second post....
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?

Similar Discussions: Angular Collision Resolution question
  1. Collisions question (Replies: 3)

  2. Collision question (Replies: 2)