Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

Aph3x

Weight in physics calcs

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

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi all, I''m simulating a projectile''s flight in my engine to the level of including air density etc. Just wondered where the object''s weight comes into play? I know it affects the downward force (W=m*G), but how is it accounted for? I''m thinking that just applying it to the gravity term would make a heavier object fall faster than a light one, which I think is wrong..?

Share this post


Link to post
Share on other sites
Advertisement
You should just apply it at the center of mass. F = m * g
Every object would accelerate with g (= 9.81 m/s^2) if there were no drag or any other force.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you drop two objects on earth from the same height, they will fall in the exact same way with the same acceleration and velocity assuming of course that there is no drag. Basically, since F=ma, and a due to gravity is the same at the heights above the earth you will be looking at, gravity exerts equal force on all falling objects. That does not mean equal energy gain, however. In physics, there is something we do called making a free-body diagram, which basically maps out all of the forces acting on an object and which directions the force vectors are in. From that diagram, you can get an idea of how to resolve the force vectors into their x and y components, which is what you need to calculate the total force in the x and y directions. Basically, when you draw a free-body diagram for a projectile, the force due to gravity points straight down from the center of gravity. The drag force will affect both the x and y components; how it affects them depends on how you implement the drag. Drag is tricky.

--Garibaldi

Share this post


Link to post
Share on other sites
I'm using an origin point mass (not going to the rigid body level here!)
I'm including drag as:

const float speed = mVelocity.Length(); // Assumes no wind.
const float dragForce = 0.5f * KRocketDragCoefficient * KAirDensityRho * (speed*speed); // Ignoring cross-sectional area.
mVelocity -= mVelocity * dragForce;


[edited by - aph3x on May 27, 2004 12:33:15 PM]

Share this post


Link to post
Share on other sites
Sorry I did not know what projectile means

usng 3D vectors:

sumforce=vector(0,0,0)
sumforce+=-abs(dragforce)*unitvelocitydirectionvector
sumforce+=vector(0,0,-mass*9.81)
//euler:

acceleraionvector = sumforce / mass
positionvector += velocityvector * dt
velocityvector += accelerationvector * dt


You must first sum all the force vectors acting on the object, and then calculate acceleration, velocity, and position

Share this post


Link to post
Share on other sites
quote:
Original post by szinkopa
sumforce+=-abs(dragforce)*unitvelocitydirectionvector
sumforce+=vector(0,0,-mass*9.81)



lol - language barriers strike again.

Ah, of course, the velocity direction vector should be normalised, doh!



[edited by - aph3x on May 27, 2004 1:23:49 PM]

Share this post


Link to post
Share on other sites
Use the weight as just another force acting on the object. (downward). It''s true everything falls at the same speed in a vacuum, but not with air resistance.
So pretty much all you need to do is acceleration = netForce / mass;
so if you had a 10kg object, and 9.8m/s acceleration, the weight is 98N. If its falling straight down at some instant and the drag force is 50N, the netForce will be 48N.
then Accell = 48 / 10kg = 4.8 m/s^2.

Compare that to an object of 20kg. Weight is now 196N. If the drag force is still 50N the netForce will be 119N.
Accel = 119 / 20 = 5.95 m/s^2.

So you see, a heavier object DOES fall faster when air resistance is present, as the force pushing downward will be fractionally larger in comparison to the frictional forces.

You really dont need to know the details, just sum up all your forces, divide by mass, and apply the acceleration. That''s alot of the point of simulators in the end... to help visualize things that may not be intuitive.

Share this post


Link to post
Share on other sites
quote:
Original post by szinkopa
-some nice source-

You must first sum all the force vectors acting on the object, and then calculate acceleration, velocity, and position

Aha, I was just using a precalced GravitySpeed * timeDelta, not adding mass in there.
quote:
Original post by Garibaldi
- a nice description-


quote:
Original post by CombatWombat
-a nice expansion on the nice description-


It's making even more sense now, thanks Gari/CW

As for visualisation, I just made my engine draw all the vectors in question and that helps nicely!

[edited by - Aph3x on May 27, 2004 3:33:23 PM]

Share this post


Link to post
Share on other sites
And to apply thrust I think:


if (mFuel > 0)
{
// Add thrust.

forceSum += mDirection * (KRocketThrustFactor / KRocketMass);
// Fake lift here for now.

forceSum.mY += KRocketMass*KGravitySpeed;
}


before the integration is ok?
Seems to work ok in my tests

[edited by - aph3x on May 28, 2004 6:27:01 AM]

Share this post


Link to post
Share on other sites
Or should that be:

// Add thrust.
forceSum += mDirection * (KRocketThrustFactor / (KRocketMass*9.8f));

??!

Argh!?


[edited by - aph3x on May 28, 2004 7:38:20 AM]

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!