一种判断坐标点是否属于区域的方法技术

技术编号:3875305 阅读:1105 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种判断坐标点是否属于区域的方法。本方法将判断一个坐标点是否属于区域分解成判断一个坐标点是否属于多个三角形区域,以得出判断结果。由于判断一个坐标点是否属于三角形区域,算法简单,计算量少,方法很多,无需浮点运算,因此它具有如下优点:1.不管支持不支持带浮点运算的处理器都能完成判断;2.判断效率高,判断结果精确。

【技术实现步骤摘要】

本专利技术涉及。
技术介绍
在嵌入式终端界面开发过程中,经常需要判断鼠标或触摸点是否在某个 不规则多边形区域内,也既是经常需要判断坐标点是否属于区域,例如打开 多个窗口时,窗口间将会有重叠现象,重叠区即是一个不规则区,鼠标点击 时需要判断点击属于哪个窗口区域内。在GPRS (全球卫星定位系统)中,经常需要判断某个位置在哪个区域内, 也既是经常需要判断坐标点是否属于区域,例如判断某个地理灾害是否位于 某个国家之内。现在的判断大都采用内角法进行判断。由于内角法判断中需要引入浮点 计算,因此它存在有如下的技术问题1、某些处理器不支持带浮点运算,无 法完成判断;2、判断效率低下,判断结果不精确。
技术实现思路
本专利技术提供,其克服了
技术介绍
的 内角法判断所存在的不足。本专利技术解决其技术问题所采用的技术方案是,该有效区域由多个连续的定位点 围成,该定位点个数大于等于3个,该判断方法,它包括步骤l,判断有效区域的定位点个 _大于3还是等于3,如果是大于3 则执行步骤2,如果是等于3则执行步骤8;步骤2,读取三个定位点,该三个定位点所围成的三角形区域之内没有其 它定位点;步骤3,判断所述的三个定位点的顺时针夹角是否大于180度,如果是则 执行步骤5,否则执行步骤4;步骤4,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点未属于区域并执行步骤9,否则执行步骤7;步骤5,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点属于有效区域并执行步骤9,否则执行步骤6;步骤6,将有效区域分解成分解区域和三角形区域,将分解区域设置为新 的有效区域并执行步骤l;步骤7,将三角形区域和有效区域之和设置为新的有效区域并执行步骤1;步骤8,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点属于有效区域并执行步骤9,否则表示该坐标点未属于区域并执行步骤9;步骤9,得出判断结果并结束。一较佳实施例中,该步骤l之前还包括步骤0,去除位于同一直线上的连续的三个定位点的中间定位点。 一较佳实施例中,该步骤0,它包括步骤Ol,读取连续的三个定位点dU), d{i+l}, d{i+2},其中,i为循 环变值参数,初值为0;步骤02,判断三个定位点是否位于同一直线之上,如果是则执行步骤03, 否则执行步骤04;步骤03,删除位于中间的定位点d{i+l},然后执行步骤04;步骤04,变值^ti加l,然后判断i+l值是否大于定位点的个数,如果是则执行步骤1 ,否则执行步骤01 。 一较佳实施例中,该步骤2,它包括步骤21,依顺序读取三个定位点d {0} , d{l}, dW,其中,X为循环变值 参数,初值为2;步骤22,判断由上述的三个定位点所围成的三角形区域之内是否有其它 定位点,如果有则执行步骤23,否则执行步骤3; 步骤23,变值参数X加1,然后执行步骤21。本技术方案与
技术介绍
相比本申请人巧妙地将判断一个坐标点是否属 于不规则区域分解成判断一个坐标点是否属于三角形区域,以得出判断结果, 而判断一个坐标点是否属于三角形区域,算法简单,计算量少,方法很多, 无需浮点运算,因此它具有如下优点1、不管支持不支持带浮点运算的处理 器都能完成判断;2、判断效率高,判断结果精确。由于还包括逐次判断每连 续的三个定位点是否位于同 一直线之上,如果是则删除位于中间的定位点, 因此能够减少计算次数,加快计算速度。 附图说明下面结合附图和实施例对本专利技术进一步说明。图1是本专利技术 一较佳实施例的判断坐标点是否属于区域的方法的流程图。图2是本专利技术一实施例的区域图处理示意图之一。图3是本专利技术一实施例的区域图处理示意图之二。图4是本专利技术一实施例的区域图处理示意图之三。图5是本专利技术一实施例的区域图处理示意图之四。图6是本专利技术一实施例的区域图处理示意图之五。图7是本专利技术一实施例的区域图处理示意图之六。图8是本专利技术一实施例的区域图处理示意图之七。 图9是本专利技术一实施例的区域图处理示意图》>\。 具体实施例方式,它用在计算设备之中,该计算设 备包括一 CPU及一存储器。它用于在打开多个窗口时,窗口间将会有重叠现 象,重叠区即是一个不规则区,鼠标点击时需要判断点击属于哪个窗口区域 内。本实施例中的区域为不规则区域或规则区域,由多个连续的定位点围成, 该定位点包括d(l), d{2}, , d{n}, n大于等于3。请查阅图1,它绘示了的流程图。一 种判断坐标点是否属于区域的方法,该有效区域由多个连续的定位点围成, 该定位点个数大于等于3个,该判断方法,它包括步骤0,去除位于同一直线上的连续的三个定位点的中间定位点;其中, 该步骤0,它具体包括步骤Ol,从存储器之中读取连续的三个定位点dU), d{i+l}, d{i+2}, 其中,i为循环变值参数,初值为0;步骤02,判断三个定位点是否位于同一直线之上,如果是则执行步骤03, 否则执行步骤04;该判断可采用判断三个定位点之间的夹角是否等于180 度,由于该计算都是采用固点计算,因此无需浮点计算;步骤03,删除位于中间的定位点d(i+l),然后执行步骤04;及步骤04,变值参数i加1,然后判断i+l值是否大于定位点的个数,如 果是则执行步骤l,否则执行步骤01;步骤l,判断有效区域的定位点个ibl大于3还是等于3,如果是大于3则执行步骤2,如果是等于3则执行步骤8;步骤2,读取三个定位点,该三个定位点所围成的三角形区域之内没有其 它定位点;其中,该步骤2,它具体包括步骤21,依顺序从存储器之中读取三个定位点dW, d{l}, dW,其中, X为循环变值参数,初值为2;步骤22,判断由上述的三个定位点所围成的三角形区域之内是否有其它 定位点,如果有则执行步骤23,否则执行步骤3;及步骤23,变值参数X加1,然后执行步骤21;步骤3,判断所述的三个定位点的顺时针夹角是否大于180度,如果是则 执行步骤5,否则执行步骤4;步骤4,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点未属于区域并执行步骤9,否则执行步骤7;步骤5,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点属于有效区域并执行步骤9,否则执行步骤6;步骤6,将有效区域分解成分解区域和三角形区域,将分解区域设置为新 的有效区域并执行步骤1;步骤7,将三角形区域和有效区域之和设置为新的有效区域并执行步骤1;步骤8,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐 标点属于有效区域并执行步骤9,否则表示该坐标点未属于区域并执行步骤9;步骤9,得出判断结果并结束,将判断结果发送给下一程序以作出执行相 关操作,例如,将相关窗口区域设置为当前窗口区域。为了便于读者清楚了解本专利技术,下面特举一例子进行说明,该区域图由 d{0}、 d{l}、 d{2}、 d{3}、 d{4}、 d{5}、 d{6}、 d{7}、 d{8}、 d(9)所围成。该判断方法,它包括步骤A, d0、 dl、 d2组成的三角形内有d4点;dl、 d2、 d3组成的三角形 内没有其它点,所以选择dl、 d2、 d3组成的三角形区域A_l_2_3。三角形 A_l_2—3的边dld2与边d2d3顺时针夹角大于180度,如图2所示。判断坐标 点是本文档来自技高网
...

【技术保护点】
一种判断坐标点是否属于区域的方法,该有效区域由多个连续的定位点围成,该定位点个数大于等于3个,其特征是:该判断方法,它包括: 步骤1,判断有效区域的定位点个数是大于3还是等于3,如果是大于3则执行步骤2,如果是等于3则执行步骤8;   步骤2,读取三个定位点,该三个定位点所围成的三角形区域之内没有其它定位点; 步骤3,判断所述的三个定位点的顺时针夹角是否大于180度,如果是则执行步骤5,否则执行步骤4; 步骤4,判断坐标点是否位于所述的三角形区域之内,如果 是则表示该坐标点未属于区域并执行步骤9,否则执行步骤7; 步骤5,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐标点属于有效区域并执行步骤9,否则执行步骤6; 步骤6,将有效区域分解成分解区域和三角形区域,将分解区域设 置为新的有效区域并执行步骤1; 步骤7,将三角形区域和有效区域之和设置为新的有效区域并执行步骤1; 步骤8,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐标点属于有效区域并执行步骤9,否则表示该坐标点未属于区域并执行步 骤9; 步骤9,得出判断结果并结束。...

【技术特征摘要】

【专利技术属性】
技术研发人员:郑添来
申请(专利权)人:厦门敏讯信息技术股份有限公司
类型:发明
国别省市:92[中国|厦门]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1