【问题标题】:Centroid of Triangulated Surface in 3D3D 三角形曲面的质心
【发布时间】:2017-03-10 18:35:24
【问题描述】:

想想不规则的 3D 形状的表面(即石头)是三角形的。

我有:

  • 顶点。 x,y,z每个点的坐标(pointCloud)。
  • 面孔。包含有关每个三角形顶点的信息。
  • 每个三角形的面积
  • 整个形状的体积

根据给定的信息,如何找到整个三角面质心的精确坐标?

【问题讨论】:

  • 我的猜测是得到每个三角形的质心,然后平均值会起作用,但必须多加考虑。

标签: triangulation centroid


【解决方案1】:

您可以通过累加每个三角形质量加权的每个三角形的质心,然后除以总质量来计算曲面的质心。在算法中,这给出了:

mg : vector3d <- (0,0,0)
m : real <- 0
For each triangle t 
   m <- m + area(t)
   mg <- mg + area(t) * centroid(t)
End for
Surfacecentroid <- mg / m

地点:

centroid(t) = 1/3 (p1+p2+p3)
area(t) = 1/2 * || cross(p2-p1, p3-p1) ||

现在如果你想要的是被曲面包围的体积的质心,算法不同,你需要将体积分解成四面体并累积四面体质心,如下所示:

mg : vector3d <- (0,0,0)
m : real <- 0
For each triangle t = (p1,p2,p3)
   m <- m + signed_volume(O,p1,p2,p3)
   mg <- mg + signed_volume(O,p1,p2,p3) * centroid(O,p1,p2,p3)
End for
volumeCentroid <- (1/m) * mg

在哪里

   O=(0,0,0) and
   centroid(p1,p2,p3,p4) = 1/4 (p1+p2+p3+p4) 
   signed_volume(p1,p2,p3,p4) = 1/6 * dot(p2-p1, cross(p3-p1, p4-p1))

即使 O 位于曲面外,该公式也有效,因为曲面外四面体部分的有符号体积完全抵消(如果您喜欢数学,另一种思考算法的方式是将斯托克斯公式应用于体积计算) .

【讨论】:

  • 感谢您的回答。加权一个工作正常。对于音量:-p4 是什么?是O 还是O 是哪一个? -O = (0,0,0) 是否始终不变? --如果是,为什么如果O为零,为什么要减去其他点? -这里的centroid函数是什么?
  • (p1,p2,p3,p4) 表示四面体的四个顶点。该公式累加有符号的体积及其质心(四面体的质心 = 1/4(p1 + p2 + p3 +p4)。对于 O,您可以取任意点,所以显然取 O=(0,0 ,0)(使计算更简单)。
猜你喜欢
  • 2014-12-13
  • 1970-01-01
  • 2015-07-09
  • 2013-09-16
  • 2019-10-15
  • 2011-01-22
  • 2014-03-13
  • 2011-11-29
  • 1970-01-01
相关资源
最近更新 更多