我有兴趣计算由它们的顶点定义的2个多边形(特别是几乎是矩形的四边形)之间的Hausdorff距离。它们可能重叠。
召回$ d_H(A,B)= \ max(d(A,B),d(B,A))$其中$ d $是Hausdorff半度量 $ d(A,B)= \ sup_ {a \ in A} \ inf_ {b \ in B} d(a,b)$。
对于$ A $,$ {A_i} $,$ d(A,B)= \ max {d(A_i,B)} $的有限的不相交覆盖,是真的吗?其中一个推论是$ d(A,B)= d(A \ setminus B,B)$。
我找到了Atallah的一篇论文1 (PDF)。我对使用Python感兴趣,并且可以使用任何预编程的解决方案。
答案 0 :(得分:2)
对于凸多边形,d(A, B)
是从A
的顶点到B
中任意点的距离的最大值。因此,如果可以计算从任意点到凸多边形的距离,则Hausdorff距离不太难计算。
要计算从点到凸多边形的距离,首先必须测试点是否在多边形内(如果是,距离为0),然后如果找不到任何边界的最小距离线段。
您的其他查询的答案是否定的。举个例子,让A和B都是以原点为中心的2x2平方。将A分成4个1x1的正方形。每个A i 到B的Hausdorff距离为sqrt(2)
,但从A到B的距离为0。
更新:关于顶点的说法并不是很明显,因此我将草拟一个在任何有限数量的维度上都很好的证明。我试图证明的结果是,在计算d(A, B)
同时使用多边形和B
凸面时,只需找到从A
到B
顶点的距离即可。 (B
中最近的点可能不是顶点,但A
中最远的点之一必须是顶点。)
由于两者都是有限的闭合形状,因此它们是紧凑的。从紧凑性来看,p
中的A
点必须尽可能远离B
。从紧凑性来看,q
中必须存在与B
尽可能接近的A
点。
仅当A
和B
是相同的多边形时,此距离才为0,在这种情况下,很明显我们在A
的顶点处实现了该距离。因此,在不失一般性的情况下,我们可以假设p
与q
之间存在正距离。
绘制垂直于q
到p
的线的q
平面(在更高维度,某种超平面)。 B
中的任何一点都可以越过这架飞机吗?好吧,如果有一个,说r
,那么从q
到r
的线段上的每个点都必须在B
中,因为B
是凸的。但很容易证明此线段上必须有一个点p
比q
更接近,与q
的定义相矛盾。因此B
无法越过此平面。
显然p
不能成为内部点,因为如果是,那么继续沿着q
到p
的光线,你会在A
中找到更远的点从B
背后的平面,与p
的定义相矛盾。如果p
是A
的顶点,则结果很简单。因此,唯一有趣的情况是p
位于A
的边界上,但不是顶点。
如果是这样,那么p
就在表面上。如果那个表面与我们构造的平面不平行,那么就很容易沿着那个表面移动,远离我们后面有B
的平面,并找到比B
更远的点而不是{{} 1}}。因此,该表面必须与该平面平行。由于p
是有限的,因此该表面必须在某处的顶点终止。那些顶点与该平面的距离与A
相同,因此至少与p
的距离B
相同。因此,p
至少存在一个尽可能远离A
的顶点。
这就是为什么找到从多边形顶点到另一个多边形的最大距离就足够了。
(我留下构建一对B
而不是顶点的多边形作为读者的有趣练习。)