MATLAB Answers


How to calculate the moment of inertia of a convex hull?

Asked by Ricardo Vega Ayora on 24 Jun 2018
Latest activity Commented on by Image Analyst
on 25 Jun 2018
I want to calculate the moment of inertia of the convex hull that surrounds points in a 3D space. Assuming, of course, that the mass and/or the density of the volume are known. I've seen the convhull function and the code by Michael Kleder to calculate the hull's volume and centroid, but how can I get the inertia matrix/tensor?
Additionally, I've ported the C code by Brian Mirtich into matlab, but it requires that the vertices of the faces to be ordered in a counterclock-wise direction. Is there a way to be independent form the clockwise or counterclock-wise faces?


Sign in to comment.




2 Answers

Answer by Anton Semechko on 24 Jun 2018
 Accepted Answer

Here is a link to a function on FEX that computes inertia tensors of objects represented by triangular surface meshes:


Thanks! I've seen that it is actually your code, so great work!
No worries. Let me know if you have any problems using this function with your meshes.

Sign in to comment.

Answer by Image Analyst
on 25 Jun 2018

For what it's worth, attached is my image moments demo. It's only 2-D though, not 3-D, but I think adapting it would be easy.


Given that you are working with pixels and not with position vectors for the points, how accurate is your method? Does it depend much on the image's resolution?
Yes. It's a numerical solution, not an analytical one, so it will depend on the quantization (image resolution).

Sign in to comment.