quote:Original post by szinkopa
The linear acceleration will be the same as before, provided the masses are the same.
Read my previous post again.
quote:Original post by Anonymous Poster
quote:Original post by spiffgq
However, the linear acceleration won''t be as strong as if a force of the same magnitude was acting through the center of mass.
Yes, it will. Many people find this counter intuitive, but that''s the way it is.
Okay. Thanks for the clarification. I was not aware ...
quote:Original post by shadow12345
That''s one of the things that I have been most confused about. I supposed I can trust you though because you seem to know what you are talking about (my last post here asked about that).
quote:
There will be no torque since the force is acting through the center of mass. However, the distance r is not zero since the force is applied at the edge of the object (say an engine or a contact impulse or something).
I don''t know if this has been answered, but this is something I understand. The distance you are takling about is really the ''perpendicular'' distance from the center of pass onto the direction of the force.
Mathematically you could do it like this(although Im not sure if this is really a good implementation):
Normalize the direction in the force.
The projection of the center of mass onto the force is just:
PerpPoint = ForceDirection * DotProduct(ForceDirection,centerofmass)
Then the actual distance is:
PerpDistance = sqrt((PerpPoint - CenterOfMass)^2)
EDIT:
and the reason that there is no torque produced in your picture is because the center of mass *IS* the projection of the center of mass onto the force direction, meaning the perpendicular distance must be zero.
I understand. Lemme digest this for a bit.
Hmm.
Okay. I guess what you''re saying is the difference between the following two situations:
In the above image, the vector
R is pointing to the "line of force".
In the above image, the vector
R is pointing to the point of application of the force
F.
The cross product in both images will be in the same direction but will differ in magnitude.
I assume the first image is the correct situation. And as that force moves inward toward the center of mass, assuming the line of force remains parallel to its current orientation, the
R vector will go to zero.
I guess my question boils down to this: what is the best way to store forces and torques for a (non-point) mass? Since
all forces acting on an object will linearly accelerate the mass and since all forces can (depending on the line of force) rotationally accelerate the mass, it seems like one can store them together somehow.
Let me think about this. One can probably just add the forces together to get the net external force. Torques work the same way. However, a force applied through the center of mass won''t create a torque, so the torque will be zero. Therefore, one must store the force vectors. And the force vector in and of itself is not enough to describe the torque. One also needs the distance from the center of mass.
So would the best way to store forces and torques be as an array of individual forces and their points of application? Kind of something like:
struct Torque{ Vector3d force; Vector3d position;};
Then, during physics updates, one can iterate over the array, add up the forces, and get the total net external force for linear acceleration. Then one can iterate over the array, calculate the torque via a cross product, and add them up to get the net external torque for rotational acceleration. (Actually, it seems that the Torque:
osition attribute will have to be "correct" to point to the line of force instead of the point of application.)
What do you think? That y''all for your help. This discussion has been most illuminating for me.