For an arbitrary convex shape in 3D, how can I calculate its center-of-gravity?

I have face-normals, and the vertices for each face.

@Ocelot No, it most certainly is not the average of the vertices, as demonstrated in this simple 2D case.

enter image description here

The average of coordinates is in top of shape, whereas the C.o.M. is in the bottom half.

  • \$\begingroup\$ I assume you started by searching for existing answers - did you hit any snags trying to implement one of the solutions you found? If you can tell us what specific trouble you're having with the existing answers, we can try to help you overcome that particular issue. \$\endgroup\$ – DMGregory Oct 20 '18 at 20:47
  • \$\begingroup\$ How about calculating centroids of the faces and then using area of faces to get weighted average? And a weight, for example, is a scalar calculated as face_area/total_shape_area \$\endgroup\$ – Ocelot Oct 25 '18 at 15:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.