# Quick force question

This topic is 4176 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

This is really basic, but I'm refactoring the API for my physics engine and I'm questioning how I have previously been applying general forces. From my understanding: torque += cross(r,F); The issue is what force to apply to the object's center of mass. Should i just add the whole force to the force vector like this: force += F; or what I had previously was to find the projection of F on R and apply that vector to the object's center of mass like so: force += F.projectOn(r); (i'm in favor of this one) Which is the correct solution?

##### Share on other sites
Quote:
 Original post by AresseraThis is really basic, but I'm refactoring the API for my physics engine and I'm questioning how I have previously been applying general forces.From my understanding:torque += cross(r,F);The issue is what force to apply to the object's center of mass. Should i just add the whole force to the force vector like this:force += F;or what I had previously was to find the projection of F on R and apply that vector to the object's center of mass like so:force += F.projectOn(r);(i'm in favor of this one)Which is the correct solution?
I'm fairly certain that the answer is simply to add F (force and torque operate independently of each other - in other words, it is not the case that a greater angular effect means a lesser linear effect, or vice versa).

##### Share on other sites
I have trouble believing that though. Do an experiment, set a long object that rotates easily on a slick surface (such as a soda bottle). Do two different cases: push on it's end in line with the body - this should produce little rotation and large translation. The other case is to push perpendicular to the axis, which produces a large rotation but little translation.

The end effect is that the more torque you produce, the less translational force there is, which is the way my projection model works. I just want some verification of this.

##### Share on other sites
Yep, jyk is correct. The force applied to the center of mass of the rigid body is just the sum of all the forces that act on the body, even if they don't act on its center of mass. Aressera, as for your experiment, i think you need some equipment to have accurate and valid results :). You can't be sure how much force you are applying, and if this force is constant, just with your bare hands ;)

##### Share on other sites
Quote:
 Original post by AresseraI have trouble believing that though. Do an experiment, set a long object that rotates easily on a slick surface (such as a soda bottle). Do two different cases: push on it's end in line with the body - this should produce little rotation and large translation. The other case is to push perpendicular to the axis, which produces a large rotation but little translation.The end effect is that the more torque you produce, the less translational force there is, which is the way my projection model works. I just want some verification of this.
This has been discussed quite a bit (for an explanation of this particular phenomenon, read the section at the end of David Baraff's second article on rigid body simulation).

I'm no physics expert, but I think your example is hampered by a number of issues (notably friction). To think about this problem accurately, you need to imagine a rod-like object floating in a vacuum with no other forces (e.g. gravity) present. Under these circumstances, the linear acceleration should be the same whether the force is applied near the middle, or near the end.

I'll wait for the physics guys to confirm or deny this, but I'm pretty sure it's right.

[Edit: see above.]

##### Share on other sites
Thanks

Yeah, I guess it was friction misleading me.

##### Share on other sites
I'm entering the discussion since I'm also in doubt about this. We usually do what jyk said in physics simulations, and that works fine. But, I think there's something wrong with that. I think the problem is related to the energy of the system, not sure . . . K = 0.5*(m*v² + I*w²).

Hmm...think about this: if you constantly apply a force on a rigid body in a way that it dont generate any torque, in some time dt the kinetic energy of the rigid body will be 0.5*m*v², right? But if you apply this same force on this same rigid body but this time generating torque the kinetic energy of the rigid body after some time dt will be 0.5*(m*v² + I*w²).If we consider that the force on the center of mass is the same we're applying on the rigid body at a point p on its surface, we'll be 'creating' energy(0.5*I*w²), because the 'linear energy'(sorry if this is a nasty term) will be the same and we'll have an additional 'angular energy' since the energy we have given to the system is the same of the first example.

Well, it seems to be true =/, but I'm not all that good in physics and cannot say it is really correct. What do ya think physics freaks?!

Thanks.

##### Share on other sites
Lets draw this analogy:

Impulse is the time integral of force, in the same units of momentum, Iw is the angular momentum - the time integral of torque. When an impulse is applied on a body at a radius r, the new velocities are determined like this:

v += J/m
w += cross(r,J)/I

look familiar?

J is the impulse vector, very similar to an applied force. As you can see, if we differentiate this equation with respect to time, we get the equations for the application of a force:

a += F/m
aa += cross(r,F)/I

which turns into the following when we multiply both sides by the mass constants:

force += F
torque += cross(r,F)

Hopefully this will assuade any skeptics.

##### Share on other sites
@xissburg - It is not true that two forces of equal magnitude need to necessarily produce the same change in energy. Remember that change in energy is Work, meaning Force * distance-- or in other words, how hard you push times what you accomplish.

1. 1
2. 2
3. 3
Rutin
15
4. 4
5. 5

• 13
• 26
• 10
• 11
• 9
• ### Forum Statistics

• Total Topics
633734
• Total Posts
3013587
×

## Important Information

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!