2009-08-24 104 views
3

如果我有一條描述道路的多段線,並且我知道所有部分的道路寬度,是否有算法可以用來確定點是否在路上?我不完全確定如何做到這一點,因爲線本身的寬度爲1px。確定一個點是否在路上

感謝,

傑夫

+0

感謝大家的快速解答。這些聲音類似於我要採取的方法,但想檢查我是否有任何不正確的做法。你的回答非常有幫助。 – 2009-08-24 02:28:44

回答

2

查找點到行的最小距離(這將是垂直於線的向量)。實際計算中,P0是路段的第一個點,v是路段矢量,w是從P0到所討論點的矢量。您必須遍歷折線中的每條邊。如果距離小於該段的寬度,那麼它就在路上。

d = |v x w|/|v| 

根據是否將它們視爲圓角(恆定半徑)或角度,角點可能會非常棘手。

2

也許你可以採取每一個線段,建立線段的長方形+其寬度,並使用矩形/點碰撞算法來確定矩形是否包含點。一個好的算法將考慮width = 1場景,它應該簡單地嘗試構建線段的反函數,並確定y-1(point.y)是否是line_segment.x1和line_segment.x2之間的x。

相關問題