来自3D半空间集合的顶点

时间:2012-03-01 22:49:01

标签: 3d geometry computational-geometry

任何人都可以建议任何好的算法或他们自己的方法来计算3D中半空间集合的顶点吗?保证半空间是凸的和有界的。

到目前为止,网络搜索已经相当无效,qhull可以执行此操作,但我希望在问题上获得更多的数学倾向,而不是阅读大量的源代码 - 但这是最​​后的手段。

1 个答案:

答案 0 :(得分:1)

假设所有半空间都由一个平面定义,平面上的所有“后面”(即,相对于定向法向量)位于半空间之外,平面内部或前面的所有内部都在内部,最明显的解决方案是:

  • 为每对飞机获取并存储线路交叉点;

那会给你一系列线条。然后是每个线和平面对:

  • 如果线路完全位于飞机上,则什么也不做;
  • 如果线与平面相交并且还不是线段,则将其转换为直到交叉点的线段;
  • 如果它已经是一个线段并且与计划相交,则剪掉飞机后面的部分;
  • 如果该线已经是线段并且完全位于该平面的一侧,则不执行任何操作。

然后收集所有线段端点的集合。