How to calculate the center of mass of a polyhedron?

조회 수: 17 (최근 30일)
Joshua
Joshua 2014년 1월 24일
답변: Roger Stafford 2014년 1월 24일
Hello, I am trying to calculate the center of a convex polyhedron based on its 'mass'.
I originally calculated it by simply taking the averages of the vertices in the x,y,and z directions. However, if there is a point added to an already existing face, this skews the center.
My initial thought is to break the polyhedron into tetrahedra, find their individual centers of mass and then add those up. I can't figure out how to do this. I try to use the Delaunay Triangulation, but I can't figure out the output.

답변 (2개)

Amit
Amit 2014년 1월 24일
  댓글 수: 1
Joshua
Joshua 2014년 1월 24일
Tried that code for a pyramid. The addition of an extra point at the center of the base (origin in my case) shifted the center.

댓글을 달려면 로그인하십시오.


Roger Stafford
Roger Stafford 2014년 1월 24일
I assume you are in three dimensions, Joshua. The centroid of any tetrahedron is always at the point which is the average value of the coordinates of its four vertices. However the centroid of a polyhedron which is decomposed into separate tetrahedra will be the weighted average of the centroids of these individual tetrahedra where this weighting is proportional to the volumes of the tetrahedra. For example, if you have a polyhedron which is composed of two tetrahedra and one tetrahedron is twice the volume of the second, then the centroid is located at 2/3*C1+1/3*C2 where C1 and C2 are centroids of the larger and smaller of the two tetrahedra, respectively. Using this method of weighted averaging, the further decomposition into more tetrahedra will not shift the overall centroid.

카테고리

Help CenterFile Exchange에서 Triangulation Representation에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by