[Bf-committers] Blender Center of Mass - Voxel data better algorithm?

panjz acme_pjz at hotmail.com
Sun Jun 16 14:39:46 CEST 2013



> From: brechtvanlommel at pandora.be
> Date: Sun, 16 Jun 2013 05:38:58 +0200
> To: bf-committers at blender.org
> Subject: Re: [Bf-committers] Blender Center of Mass - Voxel data better	algorithm?
> 
> Indeed, you can compute the exact volume of a closed triangle mesh by
> summing signed volumes of tetrahedra. The tessellation doesn't even
> need to be any good, you can just use one tetrahedron for each
> triangle, constructed from the triangle vertices and one other fixed
> point (typically the origin).
> http://stackoverflow.com/questions/1406029/how-to-calculate-the-volume-of-a-3d-mesh-object-the-surface-of-which-is-made-up
> 
> By summing the centers of mass of these tetrahedra, weighted by the
> signed volume, then I guess you get the center of mass of the whole
> mesh too? I didn't check the math but intuitively it makes sense to
> me.

Yes, it's correct because the center of mass is $\frac{\int_M (x,y,z)dV}{\int_M dV}$,
after simplification it's weighted average of center of mass of individual tetrahedron.

> This algorithm does require the mesh to be closed. For non-closed
> meshes the fixed point could perhaps be the center of mass as computed
> now, that might give a reasonable approximation.
> 

IMO it's hard to define center of mass of non-closed mesh. We can only calculate center of mass of the hull in this case. Maybe add an option in UI to specify which type we want to calculate...

 		 	   		  


More information about the Bf-committers mailing list