三维多边形与立方体的交叉算法

时间:2013-01-25 20:13:22

标签: algorithm geometry

我需要一个快速算法来检查3D多边形(三维坐标列表是否共面,给定一个逆时针或顺时针顺序的点列表,多边形可以是凸面或凹面,换句话说,它必须是不相交的简单多边形)和立方体(给定左下和右上坐标,立方体边缘与X / Y / Z轴对齐)相交。

有没有快速的方法呢?谢谢..我已经谷歌了几页,但还没有找到完全相同的东西。

非常感谢..

修改 对不起,当我说'Box'时,我的意思是'Cube'。 立方体定义为两个角点。左下角和右上角(或另一对,无所谓)。

2 个答案:

答案 0 :(得分:2)

  1. 检查多边形与框的每一边之间的多边形 - 多边形交集。
  2. 检查框中是否有任何多边形点。

答案 1 :(得分:-1)

以下是一些应该有效的测试

  1. 检查框内是否有1个或多个多边形点,但不是全部。
  2. 检查多边形的任何边缘是否与框的边缘相交。
  3. 检查多边形的任何面是否与框的面相交。
  4. 如果上述任何一个持有则它们相交。列出的所有区域可能都值得测试它们以便提取面并计算它们是否相交可能无法在线性时间内进行测试。