二维多边形和三维多面体的重心公式

二维多边形和三维多面体的重心公式

本文主要讨论的是如何快速求解二维多边形和三维多面体的重心。最终的结果分别在公式 ( 3 ) ( 6 ) (3)(6) (3)(6)

首先给出任意维几何体重心的公式,
x c = 1 V ∫ V x d V (1) \boldsymbol{x}_c =\frac{1}{V}\int_V \boldsymbol{x} dV \tag{1} xc=V1VxdV(1)
其中, x \boldsymbol{x} x是几何体中点的坐标。

二维任意多边形

二维多边形重心的求解思路是将多边形分解为若干个三角形,以三角形的面积为权重,对子三角形重心求加权平均值获得多边形的重心。

三角形面积和重心公式

任意三角形 Δ i j k \Delta ijk Δijk的重心公式为,
x c i j k = x i + x j + x k 3 (2) \boldsymbol{x}_c^{ijk}=\frac{\boldsymbol{x}_i+\boldsymbol{x}_j+\boldsymbol{x}_k}{3} \tag{2} xcijk=3xi+xj+xk(2)
其中, x i , x j , x k \boldsymbol{x}_i,\boldsymbol{x}_j,\boldsymbol{x}_k xi,xj,xk是三角形三个顶点的坐标。

面积公式可以使用秦九韶公式,或者
S = 1 2 ∣ 1 x i y i 1 x j y j 1 x k y k ∣ S= \frac{1}{2} \begin{vmatrix} 1 & x_i & y_i \\ 1 & x_j & y_j \\ 1 & x_k & y_k \end{vmatrix} S=21 111xixjxkyiyjyk

二维任意多边形的面积和重心公式

对任意一个二维多边形假设其有 N N N个顶点,也就是 N N N条边,则固定一个顶点,向与其不相邻的顶点做连线,可以将多边形分解为 N − 2 N-2 N2个三角形,

下图是一个例子,
在这里插入图片描述

将六边形分解为 Δ 123 , Δ 134 , Δ 145 , Δ 156 \Delta 123,\Delta 134,\Delta 145,\Delta 156 Δ123,Δ134,Δ145,Δ156四个三角形。

任意 N N N边形,分解为 N − 2 N-2 N2个三角形之后,重心公式(1)为,
x c = 1 V ∫ V x d V = ∑ i N − 2 ∫ V i x d V ∑ i N − 2 V i = ∑ i N − 2 ∣ V i ∣ x c i ∑ i N − 2 ∣ V i ∣ (3) \boldsymbol{x}_c = \frac{1}{V}\int_V \boldsymbol{x} dV = \frac{\displaystyle \sum_{i}^{N-2} \int_{V_i} \boldsymbol{x} dV}{\displaystyle \sum_{i}^{N-2} V_i} =\frac{\displaystyle \sum_{i}^{N-2} |V_i| \boldsymbol{x}_c^i}{\displaystyle\sum_i^{N-2} |V_i|} \tag{3} xc=V1VxdV=iN2ViiN2VixdV=iN2ViiN2Vixci(3)
其中, x c i \boldsymbol{x}_c^i xci ∣ V i ∣ |V_i| Vi分别是三角形 Δ 1 , i + 1 , i + 2 \Delta 1,i+1,i+2 Δ1,i+1,i+2的重心和面积。

三维任意多面体

三维重心公式的推到需要散度定理(高斯-格林公式),会对多面体的边界三维多边形分解为若干个三角形,并求他们的面积和重心。

三维多面体的体积公式

这里 x = ( x , y , z ) \boldsymbol{x}=(x,y,z) x=(x,y,z)是点的坐标。

三维多面体的体积公式为,
V = ∫ V 1 d V = 1 3 ∫ V ∇ ⋅ x d V = 1 3 ∫ ∂ V x ⋅ n d S V=\int_V 1 dV = \frac{1}{3}\int_V \nabla \cdot \boldsymbol{x} dV =\frac{1}{3} \int_{\partial V} \boldsymbol{x} \cdot \boldsymbol{n} dS V=V1dV=31VxdV=31VxndS
其中, ∇ ⋅ x = ∂ x ∂ x + ∂ y ∂ y + ∂ z ∂ z = 1 + 1 + 1 = 3 \nabla \cdot \boldsymbol{x} =\frac{\partial x}{\partial x}+ \frac{\partial y}{\partial y} +\frac{\partial z}{\partial z}=1+1+1=3 x=xx+yy+zz=1+1+1=3,最后一个等式使用了散度定理(高斯-格林公式), n \boldsymbol{n} n是单位外法向量。 ∂ V \partial V V是包围多面体 V V V的若干个多边形组成的。这些多边形可以按照第一节中的方式,分解为若干个三角形(假设分解为 N N N个三角形),因此多面体的体积是
V = 1 3 ∑ i = 1 N x c i ⋅ n i ∣ S i ∣ (4) V=\frac{1}{3}\sum_{i=1}^N \boldsymbol{x}_c^i \cdot \boldsymbol{n}_i |S_i| \tag{4} V=31i=1NxciniSi(4)
其中,三角形重心的求解请见公式(2), S i S_i Si是第 i i i个三角形的面积, n i \boldsymbol{n}_i ni 是第 i i i个三角形指向多面体外的单位法向量。

三维多面体的重心公式

引入关于 x x x的标量函数 A A A,并记 A c A_c Ac
A c = 1 V ∫ V A d V A_c=\frac{1}{V}\int_V A dV Ac=V1VAdV
显然有
A = 1 3 3 A = 1 3 ( ∇ ⋅ x ) A = 1 3 [ ∇ ⋅ ( A x ) − x ⋅ ∇ A ] A =\frac{1}{3} 3A =\frac{1}{3} (\nabla \cdot \boldsymbol{x})A =\frac{1}{3} [\nabla \cdot (A \boldsymbol{x} )-\boldsymbol{x}\cdot \nabla A] A=313A=31(x)A=31[(Ax)xA]
因此,利用上面两个式子
A c V = ∫ V A d V = ∫ V 1 3 [ ∇ ⋅ ( A x ) − x ⋅ ∇ A ] d V = 1 3 ∫ V ∇ ⋅ ( A x ) d V − 1 3 ∫ V x ⋅ ∇ A d V (5) A_cV= \int_V A dV =\int_V \frac{1}{3} [\nabla \cdot (A \boldsymbol{x} )-\boldsymbol{x}\cdot \nabla A] dV = \frac{1}{3} \int_V \nabla \cdot (A \boldsymbol{x} ) dV - \frac{1}{3} \int_V \boldsymbol{x}\cdot \nabla A dV \tag{5} AcV=VAdV=V31[(Ax)xA]dV=31V(Ax)dV31VxAdV(5)
根据 A A A的任意性,可以分别取 A A A x , y , z x,y,z x,y,z,这里 x , y , z x,y,z x,y,z是向量 x \boldsymbol{x} x的分量。
因此, x ⋅ ∇ A \boldsymbol{x}\cdot \nabla A xA 分别等于 x , y , z x,y,z x,y,z因此 公式(5)可以分别写为
x c V = 1 3 ∫ V ∇ ⋅ ( x x ) d V − 1 3 ∫ V x d V = 1 3 ∫ V ∇ ⋅ ( x x ) d V − 1 3 x c V x_c V = \frac{1}{3} \int_V \nabla \cdot (x \boldsymbol{x} ) dV - \frac{1}{3} \int_V x dV = \frac{1}{3} \int_V \nabla \cdot (x \boldsymbol{x} ) dV - \frac{1}{3} x_c V xcV=31V(xx)dV31VxdV=31V(xx)dV31xcV

y c V = 1 3 ∫ V ∇ ⋅ ( y x ) d V − 1 3 ∫ V y d V = 1 3 ∫ V ∇ ⋅ ( y x ) d V − 1 3 y c V y_c V = \frac{1}{3} \int_V \nabla \cdot (y \boldsymbol{x} ) dV - \frac{1}{3} \int_V y dV = \frac{1}{3} \int_V \nabla \cdot (y \boldsymbol{x} ) dV - \frac{1}{3} y_c V ycV=31V(yx)dV31VydV=31V(yx)dV31ycV

z c V = 1 3 ∫ V ∇ ⋅ ( z x ) d V − 1 3 ∫ V z d V = 1 3 ∫ V ∇ ⋅ ( z x ) d V − 1 3 z c V z_c V = \frac{1}{3} \int_V \nabla \cdot (z \boldsymbol{x} ) dV - \frac{1}{3} \int_V z dV = \frac{1}{3} \int_V \nabla \cdot (z \boldsymbol{x} ) dV - \frac{1}{3} z_c V zcV=31V(zx)dV31VzdV=31V(zx)dV31zcV

可以看到第一项和最后一项可以合并同类项,可以得到,
4 x c V = ∫ V ∇ ⋅ ( x x ) d V = ∫ S x x ⋅ n d S 4 x_cV = \int_V \nabla \cdot (x \boldsymbol{x} ) dV =\int_S x \boldsymbol{x} \cdot \boldsymbol{n} dS 4xcV=V(xx)dV=SxxndS

4 y c V = ∫ V ∇ ⋅ ( y x ) d V = ∫ S y x ⋅ n d S 4 y_cV = \int_V \nabla \cdot (y \boldsymbol{x} ) dV = \int_S y \boldsymbol{x} \cdot \boldsymbol{n} dS 4ycV=V(yx)dV=SyxndS

4 z c V = ∫ V ∇ ⋅ ( z x ) d V = ∫ S z x ⋅ n d S 4 z_cV = \int_V \nabla \cdot (z \boldsymbol{x} ) dV = \int_S z \boldsymbol{x} \cdot \boldsymbol{n} dS 4zcV=V(zx)dV=SzxndS

上面式子中第二个等式是再应用一次散度定理(高斯-格林公式)。注意 x , y , z x,y,z x,y,z是向量 x \boldsymbol{x} x的分量,三个分量写成一个向量式为,
4 x c V = ∫ S x ( x ⋅ n ) d S = ∑ i = 1 N ∫ S i x ( x ⋅ n ) d S = ∑ i = 1 N ( x c i ⋅ n i ) ∫ S i x d S = ∑ i = 1 N ( x c i ⋅ n i ) ∣ S i ∣ x c i 4 \boldsymbol{x}_c V =\int_S \boldsymbol{x}(\boldsymbol{x} \cdot \boldsymbol{n}) dS=\sum_{i=1}^N \int_{S_i} \boldsymbol{x}(\boldsymbol{x} \cdot \boldsymbol{n}) dS = \sum_{i=1}^N (\boldsymbol{x}_c^i \cdot \boldsymbol{n}_i) \int_{S_i} \boldsymbol{x} dS = \sum_{i=1}^N (\boldsymbol{x}_c^i \cdot \boldsymbol{n}_i) |S_i| \boldsymbol{x}_c^i 4xcV=Sx(xn)dS=i=1NSix(xn)dS=i=1N(xcini)SixdS=i=1N(xcini)Sixci
这里 ( x ⋅ n ) (\boldsymbol{x} \cdot \boldsymbol{n}) (xn)能够从积分式子中拿出来的原因是它在 S i S_i Si上是一个常数,因此结合公式 ( 4 ) (4) (4)我们就可以得到三维多面体重心坐标公式,
x c = ∑ i = 1 N ( x c i ⋅ n i ) ∣ S i ∣ x c i 4 V = 3 ∑ i = 1 N ( x c i ⋅ n i ) ∣ S i ∣ x c i 4 ∑ i = 1 N x c i ⋅ n i ∣ S i ∣ (6) \boldsymbol{x}_c =\frac{\displaystyle \sum_{i=1}^N (\boldsymbol{x}_c^i \cdot \boldsymbol{n}_i) |S_i| \boldsymbol{x}_c^i }{4V} = \frac{\displaystyle 3\sum_{i=1}^N (\boldsymbol{x}_c^i \cdot \boldsymbol{n}_i) |S_i| \boldsymbol{x}_c^i }{\displaystyle 4 \sum_{i=1}^N \boldsymbol{x}_c^i \cdot \boldsymbol{n}_i |S_i| } \tag{6} xc=4Vi=1N(xcini)Sixci=4i=1NxciniSi3i=1N(xcini)Sixci(6)

其中, x c i \boldsymbol{x}_c^i xci是将多面体 V V V的边界 ∂ V \partial V V分解为第 i i i个三角形的重心, ∣ S i ∣ |S_i| Si是其面积, n i n_i ni是单位外法向量。

参考文献

Z.-J. Wang, Improved formulation for geometric properties of arbitrary polyhedra, AIAA J. 37 (10) (1999) 1326–1327.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值