请注意,Spektre 的答案给出了网格表面积的质心,这可能就是您想要的。
如果您想要网格体积的中心(例如假设密度恒定的质心),则需要执行以下操作:
伪代码:
meshVolume = 0
temp = (0,0,0)
for each triangle in mesh (with vertices v1, v2, v3)
center = (v1 + v2 + v3) / 4 // center of tetrahedron
volume = dot(v1, cross(v2, v3)) / 6 // signed volume of tetrahedron
meshVolume += volume
temp += center * volume
meshCenter = temp / totalVolume
Run Code Online (Sandbox Code Playgroud)