Zero G forces: Translate or Rotate?

  • Context: Graduate 
  • Thread starter Thread starter _Nate_
  • Start date Start date
  • Tags Tags
    Forces Rotate Zero
Click For Summary

Discussion Overview

The discussion revolves around the physics of forces applied to objects in a zero-gravity environment, specifically focusing on how to calculate resulting translational and rotational forces when an object is hit off-center. It encompasses theoretical considerations, practical applications in physics simulations, and computational efficiency in game physics engines.

Discussion Character

  • Exploratory
  • Technical explanation
  • Mathematical reasoning

Main Points Raised

  • One participant describes a physics simulation setup involving models with center of mass and mass values, and queries how to calculate translational and rotational forces when an object is struck off-center.
  • Another participant explains that applying a force off-center generates torque, which affects angular momentum, and that the resulting motion depends on the angle and distance from the center of mass.
  • A participant inquires about the behavior of forces on convoluted surfaces, suggesting that a force can be decomposed into components affecting translational and rotational motion.
  • Concerns are raised about the computational intensity of using trigonometric functions (sin and cos) in physics calculations, with a question about alternative methods for efficiency.
  • One participant suggests that physics engines may simplify calculations by approximating moment of inertia rather than calculating it continuously, and discusses the challenges of determining moment of inertia for irregular shapes.
  • A later reply proposes using precomputed arrays for sine and cosine values to reduce CPU load during calculations, suggesting a lookup method for efficiency.

Areas of Agreement / Disagreement

Participants generally agree on the decomposition of forces into translational and rotational components, but there is no consensus on the specifics of how physics engines handle these calculations or the best methods for optimizing performance.

Contextual Notes

Limitations include the complexity of calculating moment of inertia for irregular shapes and the potential inaccuracies in approximating physics in simulations compared to real-world behavior.

_Nate_
Messages
19
Reaction score
0
I am working on some 3D physics simulations for computer software (just for fun), and have some general physics questions.

Basically, it goes like this: there are 'models', which have 'center of mass' values, 'mass' values, and are made from basic shapes (ellipsoids and boxes). They are run through an 'update', in which models can apply forces to themselves (or, rather, the user applies force to the models: poking, throwing, etc), and then they are run through the 'physics engine', in which Forces such as gravity and drag are applied, where collisions are calculated, and where collision forces are applied. It's made to be pretty versatile. It simply represents a force as a vector, and because constant forces like gravity are applied by the physics engine every update, the models are caused to accelerate.

So essentially all that a model has to do is remember its rotational force vector and its translational force vector, then modify those every time a new force hits and apply them at the end of each update.

So the question is, let's say you have an object in space, and it gets hit (off center) by a force. How do you calculate the resulting translational and rotational forces?

For example, if you have a large plank in zero G, and it's hit by a projectile on one end, what happens. Does the board spin around its CG, or does it start moving? Or both, but if so, how much of each? And what if the board is heavily weighted on one end?

Thanks for the help.
 
Physics news on Phys.org
Well, if you hit something off center you apply a torque. Torque is a change in angular momentum. But depending on the angle you apply the force, you may or may not move the center of mass. If you apply a force completely perpendicular to the levar arm, or axis coming straight out from the center, then you will only rotate the object. To tell how fast it will spin, you have to know the moment of inertia: mr^2. mass x radius(squared) which can be summed up and averaged out pretty easily along the lever arms if the object is uniform density and a simple shape. So it depends on the angle, distance from the center of gravity, at which you strike an object as well as mass density and shape of the object, to tell what it will do.
If you hit an object flat and the impulse is straight toward the center of gravity, then the object won't spin; it will just move like in a 1 dimensional head on collision.

If you want to calculate the angular velocity after the collision. You have to know the angle, to find the torque, then take the torque and divide it by the total moment of inertia of the radius of the object. To find the translational, just take the component of the impulse that was directly toward the center of gravity and treat as a regulaar collision.
 
Last edited:
Thanks a lot! So what about a convoluted surface, say, a sphere? Or a different convoluted shape? How does the force get distributed in that situation?

It seems (correct me if I am wrong) that a force applied to an object is broken into two components: the component pointing towards the center of mass, and the component perpendicular to the first component. The former goes into translational force, and the latter goes into rotational force. Is that correct?

Also, is there any way to get these components without using sin and cos? Those are rather CPU-intensive functions. For my purposes I don't really need excessive real-time speed (although it couldn't hurt), but do the top-of-the-line video games today really use sin and cos every time a force is applied? Is there a way to fake it, or do they use different methods of calculating physics? Just curious, not sure if anyone knows the answer.

Thanks a bunch.
 
If you can calculate the force, then the linear force will produce the same linear reaction regardless of the point of application of the linear force. If the linear force vector is not in the direction of the center of mass of the object, than a torque is also created.

What isn't clear hear is that the further the force vector deviates from crossing through the center of mass of a free object in space, the more work that is done, and the same force will be applied over a longer distance. If it's a free non-rotating body in space (before the force is applied), a greater rate of acceleration at the point of application is required in order to generate the same amount of force, resulting in more distance at the same force to generate the extra work required to increase the angular energy.
 
_Nate_ Yes, that is correct that there is basically two components. But, I am not sure how they make physics engines as good as they are. I have actually wondered that myself, when I first played half life 2. I am pretty sure, it's no where near as complicated as what happens in real life. Maybe they give an object a certain mass, but don't calculate the moment of inertia at every single point on the object. For example, the moment of inertia changes every 2 inches, instead of continuously along the radius, and same goes for angles at which it is hit. Or perhaps CPUs are capable of those functions, I don't know.

For convoluted surfaces, it's the same stuff. Find the center of gravity, find the moment of inertia about the center, which will be much harder to do because the mass is not in a easily describable shape like a sphere. You would need to integrate the change in moment of intertia with respect to the distance along the axis.
 
_Nate_ said:
Also, is there any way to get these components without using sin and cos? Those are rather CPU-intensive functions. For my purposes I don't really need excessive real-time speed (although it couldn't hurt), but do the top-of-the-line video games today really use sin and cos every time a force is applied? Is there a way to fake it, or do they use different methods of calculating physics? Just curious, not sure if anyone knows the answer.

Hey Nate, If you need to scrimp on CPU cycles for Cos and Sin the normall method is to create an array for Cos and an array for Sin values that is as large as you need for good resolution. Then you can do a straight lookup instead of a calculation each update. If you need it even finer then you need to increase the table size, or do a proportional averaging of two consecutive values in the table (essentialy turning your circle into an N sided polygon where N is the number of entries in your table)
 
Last edited:

Similar threads

  • · Replies 67 ·
3
Replies
67
Views
5K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 32 ·
2
Replies
32
Views
3K
  • · Replies 12 ·
Replies
12
Views
3K
  • · Replies 10 ·
Replies
10
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 19 ·
Replies
19
Views
4K
  • · Replies 5 ·
Replies
5
Views
2K