三维空间中n边平面多边形的面积



因此,对于平面n边多边形,我有一组n坐标(x,y,z)。坐标还没有任何特定的格式,因为我不确定什么最适合应用程序。由此,我需要推断多边形的面积,但我不知道如何实现这一点。

我考虑过使用多边形三角测量,然后计算每条边的长度,在求和之前,用Heron公式计算每个三角形的面积。但我不确定是否有更简单的方法?更不用说从哪里开始实施了。

任何想法都将不胜感激,谢谢。

三维空间中三角形的面积由其两侧向量的叉积的一半大小给出。

area = |   (v1 - v0)   x   (v2 - v0)   | / 2

或者,元素方面:

       | [ (x1 - x0) ]   [ (x2 - x0) ] |
area = | [ (y1 - y0) ] x [ (y2 - y0) ] | / 2
       | [ (z1 - z0) ]   [ (z2 - z0) ] |

所以,你可以选择多边形的第一个顶点中的一个作为[z0 y0 z0],并将所有顶点的数量相加:

area = | sum_i   (v_(i) - v0)   x   (v_((i+1) % N  - v0)   | / 2

或者,元素方面:

       |       [ (x_(i) - x0) ]   [ (x_((i+1) % N) - x0) ] |
area = | sum_i [ (y_(i) - y0) ] x [ (y_((i+1) % N) - y0) ] | / 2
       |       [ (z_(i) - z0) ]   [ (z_((i+1) % N) - z0) ] |

其中,对于i in 0..(N-1),假定sum_i指示所有顶点上的和,并且订阅_(i)指示第i个顶点的坐标。(i+1) % N简单地处理多边形点的包裹(即第N-1个点具有到第0个点的线)。

请注意,幅度是在对叉积求和后得出的。

最新更新