我需要一种快速算法来检查 3D 多边形(共面的 3D 坐标列表,给定逆时针或顺时针顺序的点列表,多边形可以是凸的或凹的,换句话说,它必须是自身不相交的简单多边形)和一个立方体(给定左下角和右上角的坐标,立方体边缘与 X/Y/Z 轴对齐)是否相交。
有什么快速的方法可以做到这一点吗?谢谢。.我已经谷歌了几页,但还没有找到完全相同的东西。
非常感谢..
编辑对不起,当我说"盒子"时,我的意思是"立方体"。立方体定义为两个角点。左下角和右上角(或另一对,没关系)。
- 检查多边形
- 与框的每一侧之间的多边形-多边形相交。
- 检查框内是否有任何面的点。
以下是一些应该有效的测试
- 检查框中是否有一个或多个多边形点,但不是全部。
- 检查多边形的任何边是否与框的边缘相交。
- 检查多边形的任何面是否与框的面相交。
如果上述任何一项成立,则它们相交。列出的所有区域都值得麻烦地测试它们,因为提取面并计算它们是否相交可能在线性时间内无法做到。