Geometry 如何找到通过三角形的立方体

Geometry 如何找到通过三角形的立方体,geometry,complexity-theory,intersect,Geometry,Complexity Theory,Intersect,给定一个在3D世界中具有垂直a、B和C的三角形,以及一个具有长*宽*高=nd*md*ld(n,m,l是整数,d是浮点)的轴对齐边界长方体,包含它,将长方体划分为n*m*l立方体,以及如何找到通过该三角形的立方体 有很多算法可以检测三角形和立方体是否相交。在所有立方体上循环,问题就可以解决了。然而,这种方法的复杂性是O(n*m*l)或O(n^3)。有没有复杂度为O(n^2)甚至O(nlogn)的方法?您无法改进O(n m l),原因如下:选择m=1和l=1。 然后一个有n个立方体的平面排列,你的三

给定一个在3D世界中具有垂直a、B和C的三角形,以及一个具有长*宽*高=nd*md*ld(n,m,l是整数,d是浮点)的轴对齐边界长方体,包含它,将长方体划分为n*m*l立方体,以及如何找到通过该三角形的立方体

有很多算法可以检测三角形和立方体是否相交。在所有立方体上循环,问题就可以解决了。然而,这种方法的复杂性是O(n*m*l)或O(n^3)。有没有复杂度为O(n^2)甚至O(nlogn)的方法?

您无法改进O(n m l),原因如下:选择m=1和l=1。 然后一个有n个立方体的平面排列,你的三角形可以与每个立方体相交。如果需要报告每个相交的多维数据集,则必须报告所有n个多维数据集

但很明显,这只是你问题陈述中的一个缺陷。你应该问的是n=m=l的情况。现在有了一组立方体,一个三角形只能与其中的O(n^2)相交

在这种情况下,一个三角形肯定会与Ω(n^2)立方体相交,所以不能 改进二次复杂度。这排除了O(n log n)

所以问题就变成了:有没有一种亚三次算法来识别 被三角形相交的O(n^2)立方体?(可以用“三角形”代替) 用“飞机”。)

我相信答案是肯定的。一种方法是构造一个表示 立方体。搜索“体素”和“八叉树交点”可能会导致 显式算法