2015-09-28 296 views
0

確定點是否在多邊形邊上的最佳方法是什麼?我們現在使用該點與其最接近的多邊形邊之間的距離,但估計所有多邊形外殼的距離限制實際上是一個難題。多邊形邊上的點

任何想法是值得歡迎的。

謝謝。

+0

「估計距離,限制所有多邊形情況下確實是一個謎」:你能告訴更多? –

回答

2

您可以分別處理每條邊並將其「放大」爲所需寬度的矩形條。

這是通過將測試點投影到邊緣支撐線上,檢查投影是否落在線段上並計算兩點之間的距離來完成的。

AB成爲邊緣片段並且P的點。 Q(t) = A + t AB是沿邊緣的任意一點,我們希望它是投影,所以矢量,

PQ(t).AB = (PA + t AB).AB = 0, 

t = - PA.AB/AB² 

這足以檢查t落在[0,1]和計算|PQ(t)|

爲了更好的處理角落,您可以考慮從點到頂點的距離。

保持如此計算的所有距離中最短的距離。

enter image description here

+0

我喜歡你的答案,但我們的問題是確定胖線寬度。 – abenci

+0

@Alberto:你的應用程序中這種寬容的確切目的是什麼? –

+0

我們可以有任何多邊形複雜度和任何多邊形大小。目前我們使用邊界矩形對角線的一部分來計算胖線寬度,但是想知道是否存在更「科學」的方法。 – abenci