本发明涉及一种判断单点是否在封闭区域内的快捷判别方法,属于计算机图像处理领域。
背景技术:
对于移动机器人,需要判断当前位置是否在指定的封闭区域内。比如,割草机器人判断自己是否处在草坪区域,是否超出工作区域。这个问题可以抽象为单点与封闭区域的相互关系。目前常采用射线法,具体为求解从该点发出的射线与多边形各边的交点,当交点数为奇数,则在内部,否则就在外部。这种方法用画图法来求解非常直观有效。但是在在计算机系统内,封闭区域是以边界上的离散点的形式来表述的,离散点之间存在长短不一的间隙,这种情况下计算射线与离散点集之间的交点就很复杂,不利于计算机实现。
技术实现要素:
本发明的目的是为了克服现有技术中的不足之处,提出一种判断单点是否在封闭区域内的快捷判别方法,采用单点到边界点的向量在圆周上的角度分布进行判别,算法简单有效,易于计算机实现。
本发明解决其技术问题所采用的技术方案是:
判断单点是否在封闭区域内的快捷判别方法,包括单点p(x,y),以及由一组边界点a={(x1,y1),(x2,y2),(x3,y3)…..(xi,yi)….}组成的封闭区域,所述的快捷判别方法包括以下步骤:
(1)计算单点p到边界点(xi,yi)的向量i的角度
(2)搜索向量i所在角度范围[
(3)如果不存在满足步骤(2)的向量j,则单点p在封闭区域内;否则,单点p不在封闭区域内。
实施本发明的积极效果是:1、采用单点到边界点的向量在圆周上的角度分布进行判断,计算量小,易于计算机实现;2、随着边界点个数的增加,判据的准确度大大提高。
附图说明
图1是点位于封闭区域内部的情况;
图2是点位于封闭区域外部的情况。
具体实施方式
现结合附图对本发明作进一步说明:
参照图1-2,判断单点是否在封闭区域内的快捷判别方法,包括单点p(x,y),以及由一组边界点a={(x1,y1),(x2,y2),(x3,y3)…..(xi,yi)….}组成的封闭区域。点p(x,y)为任意点,边界点a为封闭区域的边界点组成的数组。
所述的快捷判别方法包括以下步骤:
(1)计算单点p到边界点(xi,yi)的向量i的角度
点到点的向量角度代表这个向量的方向。
(2)搜索向量i所在角度范围[
(3)如果不存在满足步骤(2)的向量j,则单点p在封闭区域内;否则,单点p不在封闭区域内。
那么总可以找到一个边界点,从这个边界点引出的向量,单次穿过封闭区域的边界,没有其他相交点,因此会满足步骤(2);相反,如果点p处于封闭区域的外部,从点p到边界点的向量会多次穿过封闭区域的边界,因此找不到满足步骤(2)的点。
1.判断单点是否在封闭区域内的快捷判别方法,包括单点p(x,y),以及由一组边界点a={(x1,y1),(x2,y2),(x3,y3)…..(xi,yi)….}组成的封闭区域,其特征在于:所述的快捷判别方法包括以下步骤:
(1)计算单点p到边界点(xi,yi)的向量i的角度
(2)搜索向量i所在角度范围[
(3)如果不存在满足步骤(2)的向量j,则单点p在封闭区域内;否则,单点p不在封闭区域内。