找到3D多边形的区域

gif*_*ffy 5 matlab computational-geometry

给定矩阵nx3,表示3D空间中的n个点.所有点都在飞机上.飞机由它的法线和一个点放在它上面.是否有Matlab函数或任何Matlabby方法直接从矩阵中找到区域?

我试图做的是编写一个函数,首先计算n-gon的质心c.然后形成三角形:(1,2,c),(2,3,c),......,(n,1,c).计算他们的面积并总结.但后来我不得不按循环顺序组织多边形点,因为它们是无序的,我觉得很难.有一个简单的方法吗?

在Matlab中有一种更简单的方法可以在矩阵上调用某些函数吗?

Jos*_*rke 5

这可能是一种更简单的方法.首先假设您的飞机与z轴不平行.然后,只需移除第3个坐标,即可将多边形向下投影到xy平面.现在通过常规技术计算xy平面中的区域A ' .

如果您的平面与xy平面形成角度θ ,那么您的3D区域A = A '/cosθ.

如果你的飞机是平行于ž轴,照此计算WRT的Ÿ -轴代替,投射到XZ -平面.