# Need help with the moment of inertia

Hello !

I am a newbie. I was good at physics somewhere around 5-6 years ago,
but the lack of exercise and the fact that I am now a computer
scientist made me drift away from the field of physics.

Here is my problem:

- let's say that I have a random shaped 3D object Obj
- more forces are applyed to it in different points.

Here is my question:

- if the object should rotate against an axis, what would
that axis be ?

I realize that the problem may be a complicated one, but since
this is needed for a computer program, I will not have any
problem doing complicate integrations or other operations.

I do not need a formal answer to my question, I just need a link
pointing to somewhere where this problem is solved, because
all I have found treated the case when the axis was given (more like
the object was constained to revolv around that axis). My object
will not be constrained to revolv around a fixed axis. Instead, the
forces that drive the object should "choose" the axis of revolution.

Thank you.

PS: I hope I am not off-topic

I assume that you are asking for the axis on the object where the object will spin perfectly and not move sort of like when you spin a top and it simply rotates.

The term for what you are looking for is "centroid".

What you have to do is break the object down into 2 views like XY and ZY then break those views into shapes and use a formula to find for each X, Y and Z.

First thing you do is make a coordinate system for what you are looking at, typically in the bottom left corner of the view. Then you use this formula:
centroid X = (x1A1 + x2A2 + x3A3) / (A1 + A2 + A3)
x is the x COORDINATE for the centroid of a shape and A is the area of that shape. The formula for Y and Z is pretty much the same, just replace x centroids of each shape with y and z centroids of each shape. Now you need to know how to find the centroid of each individual shape. Remember to look at each shape in only 1 dimension at a time.
Different shapes have different formulas for finding the centroid. Simple shapes like squares, rectangles and circles have the centroid in the middle. If a square is 6m wide, 6m high and starts at the base of our coordinate system (0,0), the x centroid for that square is 3m from (0,0). If this 6m square was 7m to the right from our coordinate system, our x centroid is 7m + 3m = 10m. The 7 is because we started 7m to the right and the 3 is because the centroid of the shape itself is 3 which makes the coordinate for our centroid to be 10.
The centroid for a right triangle is (1/3) the length of the triange if you start from the side that goes straight up. Say you had a triangle that 3m long and 4m high where the left and bottom sides were stright. The x centroid for the triangle would be (1/3)(3) = 1. The y centroid would be (1/3)(4) = 4/3.
If your the bases for your triangle do not line up with your x and y axis, you can draw a square around the triangle. If you think about it, a triangle is really just a square with negative triangles inside of it. With this in mind, you find the centroid for the square you have created and use a positive area for the square then find the centroid of the negative triangles and use negative areas for those when you fill in the equation at the top, X = (x1A1 + x2A2) / (A1 + A2).
The centroid for semi and quarter circles is 4r/3pi when taken from the flat surface. If you have a semicircle and the flat part is on the x axis, the x centroid will be half the distance from left to right (which is just the radius) and the y centroid will be 4r/3pi.

Once you have found the centroid and area for each individual shape for the view you are looking at such as X vs. Y, fill those values into that equation X = (x1A1 + x2A2) / (A1 + A2) and you'll have the centroid for that 1 dimension. Do the process again for the other 2 dimensions and you'll end up with a 3D coordinate.

Last edited:
I don't think I need the centroid.

That is only one point on the axis of rotation.

I need the whole axis. Please tell me a way to compute
the whole axis (or a link)

Thanks!

Originally posted by fuxifuxi
Here is my problem:

- let's say that I have a random shaped 3D object Obj
- more forces are applyed to it in different points.

Here is my question:

- if the object should rotate against an axis, what would
that axis be ?

I realize that the problem may be a complicated one, but since
this is needed for a computer program, I will not have any
problem doing complicate integrations or other operations.

It is indeed a complicated problem. There is no easy way to describe a solution. For an arbitrary 3D rigid body, you first need to find the Inertia Tensor. You need to find the eigenvalues. These give you the principal axes. Now you can write down the Euler equations of motion, and solve them.

Sorry, but the jargon is unavoidable. The physics is taught in 3rd or 4th year. I suggest you find a good text on classical mechanics (Goldstein does a really good job on rigid body dynamics).

Thank you, Krab !

This is just what I needed. Some pointers. I hope I'll solve the problem now.

Staff Emeritus