gpt4 book ai didi

python - 如何计算具有三角形面的网格的质心?

转载 作者:行者123 更新时间:2023-11-30 05:04:23 25 4
gpt4 key购买 nike

根据以下描述,我想为我的网格计算一个新的质心。但我不想使用 Blender 的内置函数来计算质心,如解释的那样 here因为他们似乎没有给我我期望得到的那种质心。首先,我想计算网格的网格质心的面(三角形)中心。然后我需要计算面部区域。新的质心是网格面中心的平均值,由它们的面积加权。我如何在 Python 中执行此操作(但不一定使用 Blender 的 Python API)?

最佳答案

请注意,Spektre 的答案给出了网格表面积的质心,这可能是您想要的。

如果您想要网格中心 volume 而不是(例如假设密度恒定的质心),您需要执行以下操作:

  1. 使用三角形的 3 个顶点加上原点,从每个三角形创建一个四面体。
  2. 计算每个四面体的有符号体积和中心
  3. 合计体积和体积加权中心
  4. 用体积加权中心之和除以总体积得到网格中心

伪代码:

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

关于python - 如何计算具有三角形面的网格的质心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48918530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com