如何测试一个点是否在仅由其8个点或由其6个四边形定义的3D框中? (无法访问法线 vector )

该盒子由三角形组成,但是每边的两个多边形是对齐的,因此可以将其视为四边形。

最佳答案

您可以通过以下方式进行测试:形成6个正方形金字塔,将您的点作为头,将每个四边形的4个顶点作为底,然后对正方形金字塔的体积求和。如果体积总和等于盒子的体积,则该点在盒子中。如果体积总和大于包装盒的体积,则在包装盒外(体积总和永远不会小于包装盒的体积)。

为了计算每个方形金字塔的体积,您可以将其分成两个四面体,可以通过mix vector product轻松地计算它们的体积。您还可以计算带有混合 vector 乘积的盒子的体积。

关于c++ - 点顶点定义盒算法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8329657/

10-11 22:08
查看更多