## Angular Momentum of Rigid Bodies

I'm trying to calculate the rotation of a rigid body due to a force applied to a single point on the body. This application is for 3D game programming. I understand how to find the axis of rotation by calculating the cross product of the point of intersection & the vector between the center of the rigid body and the point of intersection(vecPtoC). My question is this:

If the rigid body has a certain mass, how do I determine how much force to apply in order to cause the body to rotate? If the force applied to the body is too small, the body should not rotate. Also, if the force applied to the body is great enough to rotate the body, how much does the body rotate due to the force?

 PhysOrg.com physics news on PhysOrg.com >> Iron-platinum alloys could be new-generation hard drives>> Lab sets a new record for creating heralded photons>> Breakthrough calls time on bootleg booze

Mentor
 If the force applied to the body is too small, the body should not rotate.
In this case, you have some sort of friction. The maximal friction torque depends on the type of friction and the geometry.

 Also, if the force applied to the body is great enough to rotate the body, how much does the body rotate due to the force?
The change in angular momentum with respect to time is equal to the sum of all torques. I do not know how your system works, so it is hard to give more specific answers.

If the body is not fixed somewhere, it might get a linear velocity as well. In addition, it might change its axis of rotation, if it is asymmetric enough.

 thanks mfb...the body is at rest and a torque(0,-1,0) is calculated from the cross product of the force applied(0,0,1) & the vector difference between point of impact(1,0,-1) and center of body(0,0,0). I've applied the torque to the body's orientation quaternion like so: quatOrientation.w += 0.5f * (quatOrientation.x * torque.x + quatOrientation.y * torque.y +quatOrientation.z * torque.z); quatOrientation.x -= 0.5f * (quatOrientation.w * torque.x -quatOrientation.z * torque.y +quatOrientation.y * torque.z); quatOrientation.y -= 0.5f * (quatOrientation.z * torque.x +quatOrientation.w * torque.y -quatOrientation.x * torque.z); quatOrientation.z -= 0.5f * (quatOrientation.x * torque.y -quatOrientation.y * torque.x +quatOrientation.w * torque.z); This method is from a game programming book by Jim Adams. How though do I factor in the moment of inertia? I haven't considered the friction btween the body and the ground...I'm more interested in taking into account the amount of force and the mass of the body...any ideas?

Recognitions:
Homework Help

## Angular Momentum of Rigid Bodies

 Quote by paulmcco I'm trying to calculate the rotation of a rigid body due to a force applied to a single point on the body. I understand how to find the axis of rotation by calculating the cross product of the point of intersection & the vector between the center of the rigid body and the point of intersection(vecPtoC).
Not sure what you mean by that calculation, but it sounds like it is only going to give you the axis of rotation as a vector. It won't tell you where the instantaneous centre of rotation is.
 If the rigid body has a certain mass, how do I determine how much force to apply in order to cause the body to rotate? If the force applied to the body is too small, the body should not rotate.
You say there's no friction. In that case, even the tiniest force will result in movement.
Suppose a force F acts on a body with mass centre at O. The body has mass M, and the line of action of F misses O by distance d. The centre of mass will accelerate in the direction of F at rate F/M.
The moment applied to the body has magnitude Fd. Rotation is complicated in 3D for arbitrary rigid bodies. You have to consider the principal axes of inertia. See e.g. http://en.wikipedia.org/wiki/Euler%2...dy_dynamics%29

 my mistake...there must be friction. My application is for a video game. If two objects collide, I would like to calculate the angular momentum of those objects due to the force applied to a point on each rigid body. My understanding is that the moment of inertia of a rigid body determines the amount of force necessary to cause a change in angular momentum. I would like to account for these forces in my calculations of angular momentum. How would I do so?I'm not necessarily concerned with the center of mass...for my application the center of mass can be the center of the body. The body will rotate from this center. I have calculated the inertia scalars as: xs = length.x * length.x ys = length.y * length.y zs = length.z * length.z. And the inertia tensors as: Ixx = mass * (ys + zs) Iyy = mass * (xs + zs) Izz = mass * (xs + ys); Assuming the center of the body is at (0,0,0) and the body has length.x = length.y = length.z = 2, if a force of (0,0,1) is applied at the point (1,0,-1), the upper right corner of the cube's front face, how much would you expect the cube to rotate(if at all)? What amount of force would be necessary to rotate the cube?

Recognitions:
Homework Help
 Quote by paulmcco my mistake...there must be friction. My application is for a video game. If two objects collide, I would like to calculate the angular momentum of those objects due to the force applied to a point on each rigid body. My understanding is that the moment of inertia of a rigid body determines the amount of force necessary to cause a change in angular momentum.
This sounds like impacts, so the forces are indeterminate. You need to use conservation of momentum and of angular momentum. That won't be enough to fix the motion; you'll also need to make some assumption about coefficient of restitution. Or just say such-and-such a percentage of energy is lost.
 for my application the center of mass can be the center of the body. The body will rotate from this center. I have calculated the inertia scalars as: xs = length.x * length.x ys = length.y * length.y zs = length.z * length.z. And the inertia tensors as: Ixx = mass * (ys + zs) Iyy = mass * (xs + zs) Izz = mass * (xs + ys);
That's summing over the xs etc?
 Assuming the center of the body is at (0,0,0) and the body has length.x = length.y = length.z = 2, if a force of (0,0,1) is applied at the point (1,0,-1), the upper right corner of the cube's front face, how much would you expect the cube to rotate(if at all)? What amount of force would be necessary to rotate the cube?
(1, 0, -1) is not a corner of the cube - it's halfway along an edge.
Angular Impulse = Momentum of impulse x distance (vector product)
= Moment of inertia x change in angular velocity
Suppose a body of mass m strikes the middle of the top edge of the front face at speed v in a front-to-back direction. Assume the impact is completely inelastic (i.e., the bodies coalesce). The angular impulse about the x-axis (left-right axis) is mva, where a is the half-width of the cube. Let the moment of inertia of the cube about the x-axis be MI. If the angular speed of the merged body after impact is w then mva = mwa2+MIw.
No doubt you're more interested in cases where the bodies bounce with relatively little loss of energy.

 Tags angular momentum, rigid bodies