【图形】点与直线位置判断(求点位于那两条直线之间)

时间:2021-11-05 21:26:35

应用情况:

给出一系列车道线(首尾端点),希望找出车位于哪个车道上。由于数据来源于图像投影,车道线彼此并不平行。

 

方案A:

【图形】点与直线位置判断(求点位于那两条直线之间)

假设车道线都在90度左右,则可直接利用点的x坐标与车道线两端平均x坐标距离进行判断。取x坐标距离最近的两条直线

 

方案B:

【图形】点与直线位置判断(求点位于那两条直线之间)

进一步推广到任意方向的直线,则可求点到车道线的距离。取点到直线距离最近的两条

参考:Point到直线 y = kx + b 距离 distance = abs(k * Point.x -  Point.y + b)/sqrt(k * k + 1);

 

方案C:

【图形】点与直线位置判断(求点位于那两条直线之间)

去除线段间的比例关系后,前面的方法将无法使用。

这里则计算点到相邻线段的4端点连线夹角。如果4个夹角(相邻连线间)和为360度,则为该对线段。

参考:顶点(x, y) 与边上2点(xa, ya), (xb, yb)的夹角 a = abs( arctan((ya-y)/(xa-x)) – arctan((yb-y)/(xb-x)) );