# Inertia Tensor

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

## Recommended Posts

Is anyone aware of a site, that properly explains a method to exactly calculate the inertia tensor of a polyhedron? I've come across sites that either just give source code for how to do this or give the maths but don't seem to bother to explain how they derived half the terms they use - they just pluck them out of the air and often they'll end with some obscure integral which they won't bother explaining how it's solved. So if someone knows of a site that comprehensively explains how the inertia tensor is calculated to enough detail for someone with reasonable maths knowledge to implement a program in C++ that does the job, please let me know Thanks

##### Share on other sites
Try this pdf "PolyhedralMassProperties". Failing that buy yourself a copy of the excellent 'Game Physics' by DH Eberly which explains it very well.

##### Share on other sites
Great, that's by far the best explanation I've seen, just what I was looking for. (I may still buy the book, coz a lot of people seem to talk about it - must be a good one)

Thanks

##### Share on other sites
can someone please explain equation (2) for me?

Integral_V[p(x,y,z) dV] = Integral_V[del . F dV] = Integral_S[N . F dS]

I don't get the second equality, why does the N appear when integrating the surface rather than the volume?

##### Share on other sites
As it states in the text immediately before the equation, "A volume integral may be converted to a surface integral via the Divergence Theorem from calculus". Look up the divergence theorm (aka Gauss's theorm). You might start here: http://mathworld.wolfram.com/DivergenceTheorem.html

I'm a bit rusty on my vector calculus, but it looks like they're defining the density function p(x, y, z) as equal to the divergence of some vector field F(x, y, z), so that they can integrate the component of this vector field that's perpendicular to the surfaces of the polyhedron (done using a dot product N.F), over the surfaces of the polyhedron, which happens to be equal to the integral of p(x, y, z) over the volume...

[Edited by - Geoff the Medio on September 27, 2004 2:13:09 PM]

##### Share on other sites
Quote:
 Original post by Geoff the MedioAs it states in the text immediately before the equation, "A volume integral may be converted to a surface integral via the Divergence Theorem from calculus". Look up the divergence theorm (aka Gauss's theorm). You might start here: http://mathworld.wolfram.com/DivergenceTheorem.htmlI'm a bit rusty on my vector calculus, but it looks like they're defining the density function p(x, y, z) as equal to the divergence of some vector field F(x, y, z), so that they can integrate the component of this vector field that's perpendicular to the surfaces of the polyhedron (done using a dot product N.F), over the surfaces of the polyhedron, which happens to be equal to the integral of p(x, y, z) over the volume...

aah, got it. this link really helped too: http://www.mathpages.com/home/kmath330/kmath330.htm

##### Share on other sites
Ok, I've implemented code to calculate the inertia tensor. I've also got collision detection and response implemented for my physics engine I'm working at the moment. However, I have a few questions:

1. I'm using a left handed coordinate system and measuring my angular velocities counterclockwise rather than clockwise. I've found the latter has meant that I should calculate the torque of a force as follows:

Torque = F x R

rather than

Torque = R x F

where F is the force vector and R is a vector from the bodies centre of mass to the point at which the force is applied

Does this mean that my collision impulse should be calculated differenty? The collision impulse j between bodies A and B is normally given as:

-(1+e)[VA - VB] . n
-----------------------------
n.n( 1/MA + 1/MB + [XA + XB].n

where Xa is

(I-1A ( RA x n )) x RA

and similarly for Xb. e is the coefficient of restitution and n is the normal of the collision. Ri is the vector from the body's centre of mass to the collision point

2. Normally to convert the inertia tensor I from body space to world space you do the following:

Iworld = A Ibody AT

Does this change in anyway if using a left-handed coordinate system or measuring angles counterclockwise?

3. Should the inertia tensor in body space be calculated differently when using a left handed coordinate system or measuring angles counterclockwise?

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• 15
• 22
• 13
• 14
• 45