【发布时间】:2015-07-13 01:28:19
【问题描述】:
最终,我想实现一个具有以下规范的算法:
输入: N 个 3 维平面(每个平面给出 Ax + By + Cz = D)
输出:
- V 个顶点列表,以及
- 边缘列表E(来自V的对),以及
- F 面列表(从 E 循环)精确地限制了由 包围的体积(即法线的另一侧) N 架飞机
不能保证每个平面都会与面重合,但可以保证体积始终明确存在(即平面具有良好的法线)。
我知道这是在计算几何领域,但我尝试用谷歌搜索上面的一些术语,但没有找到任何东西。我认为一个解决方案应该包括一个二进制空间分区树。
到目前为止,我已经尝试了简单的方法 - 只是制作了一个巨大的 N^2 (ish) 平面之间所有切片的列表,然后针对每个平面检查每个切片,并删除那些位于错误一侧的切片至少一架飞机。这是 N^3,当然效率很低,它甚至还没有给出边缘 - 您仍然需要计算边缘的起点和终点在切片上的位置。
任何指向 CG 算法的帮助都会很棒!谢谢!
【问题讨论】:
-
请注意,给定的一组平面可能包含几个不同的卷。在其内部找到包含原点的体积的顶点、边和面是 3 维凸包问题的对偶;将平面 Ax+By+Cz=1 映射到点 (A,B,C)。
-
感谢对凸包问题的帮助,我去看看!