确定一个点是否在道路上
-
19-09-2019 - |
题
如果我有一个描述道折线,我知道的道路宽度在各地,有一个算法,我可以用它来确定是否点的道路上?我不完全知道如何做到这一点,因为该行本身有1px的宽度。
感谢,
杰夫
解决方案
查找点到行的最小距离(这将是垂直于线的向量)。实际计算,其中P 0是所述道路段的第一个点,v是所述道路段向量且w为P0到所讨论的点的向量。你将不得不遍历折线每个边缘。如果该距离小于段的宽度,那么它是“开”路。
d = |v x w| / |v|
在角部可能会因如果把他们当作圆的(恒定半径)或角上是棘手的。
其他提示
也许你可以采取各线段,构建线段+它的宽度的矩形,并使用矩形/点冲突算法,以确定该矩形包含的点。好的算法将占宽度= 1分的情况下,其应该简单地试图建立线段的反函数,并确定如果y-1(point.y)是line_segment.x1和line_segment.x2之间的x
不隶属于 StackOverflow