對於凸多邊形,d(A, B)
是從頂點A
到B
中任意點的距離的最大值。因此,如果可以計算從任意點到凸多邊形的距離,則Hausdorff距離不太難計算。
要計算從點到凸多邊形的距離,首先必須測試該點是否位於多邊形內(如果距離爲0),然後如果它沒有找到任何點的最小距離邊界線段。
您的其他查詢的答案是否定的。作爲一個例子,讓A和B都是以原點爲中心的相同的2x2平方。分區A分成4個1x1的正方形。從每個A 我到B的Hausdorff距離是sqrt(2)
,而是從A到B的距離爲0。
UPDATE:有關頂點的權利要求不能立即明顯,因此我將繪製一個證明在任何有限數量的維度上都是好的。我試圖證明的結果是,在計算d(A, B)
中的兩個多邊形和B
凸時,只需找到從頂點A
到B
的頂點的距離即可。 (B
中的最近點可能不是頂點,但A
中的最遠點之一必須是頂點。)
由於二者都是有限閉合形狀,所以它們是緊湊的。從緊湊性來看,必須存在p
中的A
,儘可能遠離B
。從緊湊性來看,B
中必須存在q
的點,該點儘可能接近A
。
僅當A
和B
是相同的多邊形時,此距離爲0,在這種情況下,我們很清楚在頂點A
處實現了該距離。因此,不失一般性,我們可以假設從p
到q
有正距離。
繪製垂直於從p
到q
的行的q
的平面(更高維度,某種超平面)。 B
中的任意一點能穿過這架飛機嗎?那麼如果有一個,例如r
,那麼從q
到r
的線段上的每個點必須在B
中,因爲B
是凸的。但很容易證明,該線段上的點必須比q
更接近p
,這與q
的定義相矛盾。因此B
無法穿越這架飛機。
顯然p
不能是內部點,因爲如果是,則沿射線繼續從q
到p
,你會發現在A
是從B
是有界的背後,矛盾的p
定義的平面更遠點。如果p
是A
的頂點,那麼結果是平凡的。因此,唯一有趣的情況是p
位於A
的邊界上,但不是頂點。
如果是,那麼p
在表面上。如果該表面不平行於我們構造的平面,則沿着該表面行進將很容易,遠離我們所在的面後面的B
平面,並且找到距離B
遠的點比p
更遠。因此該表面必須平行於該平面。由於A
是有限的,因此該表面必須在某個頂點終止。這些頂點距離該平面的距離與p
相同,因此距離B
至少與p
差不多。因此,存在至少一個頂點A
,儘可能遠離B
。
這就是爲什麼它足以找到從多邊形的頂點到另一個多邊形的距離的最大值。
(我離開構造一對多邊形與q
不是一個頂點作爲一個有趣的練習留給讀者。)
你可能會得到更好的運氣與此(尤其是證明部分)在Math.SE – lvc
我那裏也發佈了,但是那裏沒有太多的算法。 –
刪除類似乳膠的格式... – UmNyobe