问题是找到两个2d凹多边形之间最接近的特征。特征可以是顶点,边缘。因此,结果可以是任何功能组合。有没有比O(m * n)更好的复杂性的简单解决方案?其中m,n - 分别为多边形的边数。多边形是共面的。
答案 0 :(得分:1)
O(n.log(m))
中的算法似乎存在,请参阅this paper和this question。
我可以尝试优化我的 (未经测试)
如果您的多边形大部分时间相距足够远,您可以构建两个凸包,并回到找到两个凸多边形之间的Hausdorff距离的最简单问题(O(n+m)
中的解)。如果距离 0 ,则必须回退到O(m.log(n))
情况,但是如果你大部分时间处于具有正距离的“凸包”情况下,那么它是值得的。
发表-Scriptum 即可。我刚刚意识到,为了使假设起作用,您还需要检查凸包中最接近的特征是否属于原始凹多边形。如果没有,很容易找到一个反例(想象一个字母C形状的多边形,附近有另一个圆形:CO)。
更新后的假设是:两个凹多边形之间的Hausdorff距离d
是它们的凸包之间的Hausdorff距离,如果d > 0
,和都最接近功能是原始多边形的一部分。
证明这一点是留给读者的。