Force causing rotation!

Started by
15 comments, last by uncutno 22 years, 10 months ago
(Don''t mind bad english!) Ok, here is my question! If a force is added to an objekt. How mouch will cause the object to rotation, and how mouch to movement(accseleration)? Because if u use the model where a force-vector paralell to the vector betwen the hit-point, and the center-mass-point would only cause movement, and a force-vector diagonal to the vector betwen the hit-point, and the center-mass-point, would only cause rotation, You would get a problem, when to exact simular forces was added diagonal to the hit-points/center-mass-points, like this: h---->f | | 0 | | h---->f h=hitpoint, f=force O=center-mass-point THis would cause the object to try to rotate two ways, witch would sum up to a 0 rotational accseleration: No movement, no rotation! ???? Is there a simple formula? like: v=at or F=ma to this problem?? -Anders-Oredsson-Norway-
-Anders-Oredsson-Norway-
Advertisement
M = FR
Where R = distance from center mass
M - moment ( i dont''t know how it in english )
If sum of M = 0 , then no rotation
M=I*w*w , where w - Angular speed , and I - moment of inertia ( const ) - it''s describe mass distribution in object.
w = radian in second
quote:Original post by uncutno
Because if u use the model where a force-vector paralell to the vector betwen the hit-point, and the center-mass-point would only cause movement, and a force-vector diagonal to the vector betwen the hit-point, and the center-mass-point, would only cause rotation


Your first observation is correct: if the force vector is parallel to the vector between the hit point and center of mass, the force will not cause rotational acceleration. The reason is that the force causes no torque (moment-of-force) about the center of mass, and it is torque that causes the rotational acceleration.

Your second observation is incorrect: an unbalanced force will *always* cause movement/translation, whether the force is parallel or diagonal (did you mean to say normal/perpendicular).

quote:Original post by uncutno
, You would get a problem, when to exact simular forces was added diagonal to the hit-points/center-mass-points,
like this:

[diagram removed by grhodes_at_work]

THis would cause the object to try to rotate two ways, witch would sum up to a 0 rotational accseleration: No movement, no rotation!


Your observation here is partially correct: it is true that the two forces try to cause rotational acceleration in opposite directions, leading to 0 net rotational acceleration. That is because one force causes a positive torque and one causes an equal but opposite negative torque. The sum of all torques equals 0 net torque.

It is not true that this system will experience no movement/translation. Your two forces, f, do not cancel each other out. Both applied forces, f, are acting in the same direction----to the right. So, in reality the net applied force is equal to 2 * f to the right. The object will undergo translational acceleration to the right.

quote:Original post by uncutno
Is there a simple formula? like:

v=at or F=ma to this problem??


Yes, certainly, and F=ma is one of them. For a simple point mass representation of the object (which is what you''re describing), use two basic equations. Its best to stick to 2D physics until you''re comfortable with the way forces and torques work, and I present these equations for 2D. They do extend to 3D, but things do get messy pretty fast---there are additional terms in the equations, etc. You should be comfortable with the 2D first.

Equation (1) is to determine movement/translational acceleration.

(1) F = m * a for translation, where F is the force vector, m is the mass, and a is the acceleration vector. There are actually two equations, one for the x direction and one for the y direction: F_x = m * a_x and F_y = m * a_y.

Sum the force vectors up, and solve for a_x and a_y at each time step. You can then integrate dv/dt = a to get the velocity at the new time step and then once you have velocity integrate ds/dt = v to get the new position. velocity v and position s are two-dimensional just like v.

Equation (2) is to determine rotational acceleration.

(2) T = J * ra, where T is the net torque, J is the moment of inertia, and ra is the rotational acceleration (radians/sec_squared). There is only one equation for 2D problems: the T and ra vectors are always perpendicular to the 2D plane.

Sum the torques up, solve for ra at each time step. Then, integrate drv/dt = ra to get rotational velocity, rv, and drs/dt = rv to get new rotational position, rs.

Chris Hecker''s resources on the web (especially the Game Developer Magazine articles from a few years ago) are a good beginner''s resource for how to do all this in detail.

Of course, if you do have collisions and things, it gets more complex even in 2D, but perhaps this will give you a start.

By the way, the equation "v=at" is actually part of a closed form solution for projectile motion. It is valid for objects undergoing gravitational acceleration with no other forces applied.



Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
quote:Original post by Bandures
M=I*w*w , where w - Angular speed , and I - moment of inertia


This equation is wrong, by the way. In 2D, it would be:

M = I * dw/dt, where dw/dt is the time derivative of w, or the angular acceleration.

In 3D, it would be:

M = I * dw/dt + w cross (I * w), where here I is the 3x3 inertia tensor matrix and w is a vector.

I see where you may have made your mistake. If you naively simplify the 3D equation down to 2D, so that I and w are scalars, you would get:

M = I * dw/dt + w * ( I * w)

or,

M = I * dw/dt + I * w * w

which looks just like your equation with the (required) term I * dw/dt added.

But there's a problem with that: w cross (I * w) does not simplify to w * (I * w). If you notice that for 2D problems, w = (0, 0, wz) and I is a diagonal matrix (i.e., no inertial coupling), then expand out w cross (I * w), you will see that the term is 0 for 2D problems and you are left with my equation for 2D.

Oh, by the way, the word "moment" is perfectly fine in English! We also call it torque.

Graham Rhodes
Senior Scientist
Applied Research Associates, Inc.

Edited by - grhodes_at_work on June 21, 2001 12:54:44 PM
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
v = at?
Surely you mean v = u + at......
Ok.. thanks! I will try to make this into my engine, and by the way, its 3D :-) I earlier tried to simulate this behavor by making a model of the car as 8 points in a cube with elastic springs betwen... Im making a remote-controled-wipeout-sortof game, and i need some better physics then [right_key] => angle+=k; :-) like you se in so many bad games...
I will surly post a message when the game is done. :-)
and pleas send e-mailbombs to the norwegian state, for not teatching this in scool! :-)

anything more? For example, if you slide a car into a corner, how do you calc the force that will prevent the car from "entering the corner, and make it rotate instead? I have seen some of these formulas before, but never a practical implantation...

p.s: my assumtion that u(start velocity) was zero, could cause alot of bad thing! It will never happen again! :-)


-Anders-Oredsson-Norway-
-Anders-Oredsson-Norway-
quote:Original post by furby100
v = at?
Surely you mean v = u + at......


Yes, of course it is this, with u being the initial velocity for the constant acceleration case.
Graham Rhodes Moderator, Math & Physics forum @ gamedev.net
Now THIS is a physics question!!

quote:Original post by uncutno
For example, if you slide a car into a corner, how do you calc the force that will prevent the car from "entering the corner, and make it rotate instead?


The idea is exciting, and I think it''s readily achievable by simple playtesting. You want to be able to assign friction (or, more precisely, lateral acceleration) constants to each of the tires, have either total or distributed mass (if you want to get REALLY sexy, you could simulate the suspension as four separate masses, each near the tire, just the way a real car works, but hey), and on the motion side you want your vehice''s velocity vector, and the angles of the road the vehicle is on/approaching/exiting.

When I first envisioned the problem, my mind immediately leapt to the car chase at the end of "Bullitt" with Steve McQueen. Nash Bridges is a half-ass attempt at being Bullitt-like in driving style, but it''s only an attempt.

I don''t know the formulae, but if the vehicle is moving with too much energy for the lateral acceleration coefficient of the tires, the vehicle will spin OUT if it attempts too sharp a turn (probably around 40 or 50 degrees incidence to the velocity vetor, I would guess).

In order to spin IN to a turn, the drive tires (I say it this way because it could be RWD, FWD, or AWD) would have to be sufficently worn down, and the front tires (always the front) would have to bite in pretty hard. Unless you have some complex vehicle physics, tire physics, etc, this may be a tough nut to crack.
-----------------
-WarMage
...what, me be technical?



Hi,

Use gyroscopic effect to figure out how much the car should turn. Lesser calculation and more accurate results.
Hello from my world
flame_warrior, I''m not sure I''m convinced. How would you calculate the point at which to break the tires loose, and the angular momentum associated with it? If it works, that sounds cool (I did post the somewhat longwinded one above), but could you give a little more background to your solution?
------------
-WarMage
...I used to give a rat''s ass, but I ran out of rats.

This topic is closed to new replies.

Advertisement