判断一个点是否在某个区域内
背景:
比如滴滴会根据乘客所在的不同区域,给出不同的价格。市区堵一点,那么价格也高点。获取服务范围只规定在某个范围内
射线法
由W. Randolph Franklin提出的。算法的思路如下:
从待测点出发作一条射线,可沿y轴方向也可没x轴方向,然后判断这条射线与不规则区域的交点数量。如果点的两边交点的个数都是奇数个则该点在多边形内,否则在多边形外。 这个算法对于任意不规则图形都适用。
不过要注意几种特殊情况:1、点在边或者顶点上;2、点在边的延长线上;3、点出发的水平射线与多边形相交在顶点上