Geometry 扩展凸面外壳以减少侧面

Geometry 扩展凸面外壳以减少侧面,geometry,computational-geometry,Geometry,Computational Geometry,我们有一组凸壳不重叠的标记点。凸面外壳之间有一些空白 给定一个不在数据中的未标记点,我们希望大致确定它位于哪个凸包中 为了加快计算速度,我们希望减少凸包上的边数(从而稍微扩展凸包,但不要太多) 我可以使用什么算法 更新:理想情况下,我希望在不与附近给定多边形相交的约束下进行展开。(这个约束的动机是我有几个不相交的外壳,我想减少所有外壳的边数,同时保持它们不相交。但是把这当作附加语,因为我不想进行联合修改。我很高兴修改一个外壳,同时保持其他外壳不变。我很高兴破解这个简单的案例to反复进行联合修改。

我们有一组凸壳不重叠的标记点。凸面外壳之间有一些空白

给定一个不在数据中的未标记点,我们希望大致确定它位于哪个凸包中

为了加快计算速度,我们希望减少凸包上的边数(从而稍微扩展凸包,但不要太多)

我可以使用什么算法


更新:理想情况下,我希望在不与附近给定多边形相交的约束下进行展开。(这个约束的动机是我有几个不相交的外壳,我想减少所有外壳的边数,同时保持它们不相交。但是把这当作附加语,因为我不想进行联合修改。我很高兴修改一个外壳,同时保持其他外壳不变。我很高兴破解这个简单的案例to反复进行联合修改。)

也许这值得一试。 求并x的凸包A′,和并x的凸包B′。 选择增加外壳面积最小的选项。 在下面的例子中,A'是赢家。

在回应评论时增加: 一条路线是通过“最小封闭k-GON”:

  • Michtchell等人:“封闭k形边的最小周长”2006()
  • Aggarwal等人:《多边形的最小外接面积》1985()
  • O'Rourke等人:“确定最小封闭三角形的最佳算法”1986年,Algorithmica()

然而,这些算法相当复杂,不太可能有多大帮助。

如果在粗略阶段减少一条边的处理所节省的成本被充气船体的增加的假阳性率所抵消,我不会感到惊讶。事实上,你甚至可以为自己做更多的工作——通过粗略阶段检查的每一点都必须根据真实船体进行检查

与其试图减少
O(n)
包含的支票中的
n
,我会直接去做一些分期付款
O(1)
的粗略通行证:

  • 第一次通过-对照轴对齐边界框(AABB)进行检查。这样可以快速拒绝多边形外的绝大多数点
  • 第二遍-将AABB划分为网格,其中每个网格四边形处于三种状态之一:完全位于外壳外部、与外壳边缘相交或完全位于外壳内部。如果您的点位于“输入”或“输出”四元组中,您可以在此停止
  • 第三遍-位于与多边形相交的栅格四边形中的任何点都将与外壳线进行法线检查
  • 可以提前计算电网的状态:

  • 初始化每个网格四边形,使其位于外壳外部
  • 使用链接的算法在栅格上跟踪外壳的边,并设置所有相交四边形
  • 栅格现在包含船体轮廓,因此使用简单的泛洪填充或扫描线方法查找并设置船体内部的所有四边形
  • 网格的分辨率可以改变,以在内存成本(每四元2位)和误报率(低分辨率网格将导致更多的
    O(n)
    常规外壳检查)之间进行折衷。“凸多边形中的点”测试并不昂贵,因为它可以通过二分法在
    Lg(n)
    比较中执行(用一条直线将多边形一分为二,递归直到剩下一个三角形)。
    N
    是边数。实际上,一个27(130)边的多边形将花费三角形的两倍(三倍)


    如果有许多外壳,则将点与每个外壳进行详尽的比较是一种浪费。有更好的方法,例如使用单调细分,这可以将搜索时间降低到O(Log(M))预处理后总共查询
    M
    个边的时间。

    看起来您的最终目标不是真正的凸包,而是解决点位置问题()。你似乎决心通过简单地迭代检查你的点和一些凸包来解决这个问题。虽然我知道凸包是从哪里来的(它们实际上代表点集)点定位问题可以通过一些更有效的算法(如基于梯形分解的搜索树)来解决,它们对外壳中的边数不太敏感。

    你的意思是,凸面
    外壳在技术上不会是外壳,因为它们比需要的大?从数学上讲,一组点只有一个可能的凸面外壳。@Daniel是的,这是正确的。我希望减少边数(有时是三角形或正方形)同时放弃拟合的“紧密性”。这样做的好处是更容易和更快地测试成员资格。感谢您思考这个问题。还使用附加约束更新了问题,以便我可以对多个不相交的外壳执行此操作。为什么要在处理附加点方面说明问题(“给定一个不在我们数据中的未标记点…”。这是因为该未标记点事先不知道,后来才到达?还是因为您下意识地决定采用增量处理方法(逐点)这是一个重要的区别,在这种情况下,它会严重影响算法的选择。所有数据点都是提前可用的吗?还是一个接一个地到达?而已知标签的数据点是提前可用的。其他未标记的数据点相对较少,而且他们的标签(不管我们怎么做)将不会是权威性的。他们是否一个接一个地到达都是没有意义的。谢谢!对不起,我还没有足够的声誉去投票。这是一个好主意。我仍然在等待一些关于这个话题的学术研究的建议。我觉得