如果我有一个描述道折线,我知道的道路宽度在各地,有一个算法,我可以用它来确定是否点的道路上?我不完全知道如何做到这一点,因为该行本身有1px的宽度。

感谢,

杰夫

有帮助吗?

解决方案

查找点到行的最小距离(这将是垂直于线的向量)。实际计算,其中P 0是所述道路段的第一个点,v是所述道路段向量且w为P0到所讨论的点的向量。你将不得不遍历折线每个边缘。如果该距离小于段的宽度,那么它是“开”路。

d = |v x w| / |v|

在角部可能会因如果把他们当作圆的(恒定半径)或角上是棘手的。

其他提示

也许你可以采取各线段,构建线段+它的宽度的矩形,并使用矩形/点冲突算法,以确定该矩形包含的点。好的算法将占宽度= 1分的情况下,其应该简单地试图建立线段的反函数,并确定如果y-1(point.y)是line_segment.x1和line_segment.x2之间的x

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top