CN101593110B - 一种判断坐标点是否属于区域的方法 - Google Patents
一种判断坐标点是否属于区域的方法 Download PDFInfo
- Publication number
- CN101593110B CN101593110B CN 200910112099 CN200910112099A CN101593110B CN 101593110 B CN101593110 B CN 101593110B CN 200910112099 CN200910112099 CN 200910112099 CN 200910112099 A CN200910112099 A CN 200910112099A CN 101593110 B CN101593110 B CN 101593110B
- Authority
- CN
- China
- Prior art keywords
- execution
- coordinate points
- effective coverage
- delta
- anchor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明公开了一种判断坐标点是否属于区域的方法。本方法将判断一个坐标点是否属于区域分解成判断一个坐标点是否属于多个三角形区域,以得出判断结果。由于判断一个坐标点是否属于三角形区域,算法简单,计算量少,方法很多,无需浮点运算,因此它具有如下优点:1、不管支持不支持带浮点运算的处理器都能完成判断;2、判断效率高,判断结果精确。
Description
所属技术领域
本发明涉及一种判断坐标点是否属于区域的方法。
背景技术
在嵌入式终端界面开发过程中,经常需要判断鼠标或触摸点是否在某个不规则多边形区域内,也既是经常需要判断坐标点是否属于区域,例如打开多个窗口时,窗口间将会有重叠现象,重叠区即是一个不规则区,鼠标点击时需要判断点击属于哪个窗口区域内。
在GPRS(全球卫星定位***)中,经常需要判断某个位置在哪个区域内,也既是经常需要判断坐标点是否属于区域,例如判断某个地理灾害是否位于某个国家之内。
现在的判断大都采用内角法进行判断。由于内角法判断中需要引入浮点计算,因此它存在有如下的技术问题:1、某些处理器不支持带浮点运算,无法完成判断;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,得出判断结果并结束。
一较佳实施例中,该步骤1之前还包括:
步骤0,去除位于同一直线上的连续的三个定位点的中间定位点。
一较佳实施例中,该步骤0,它包括:
步骤01,读取连续的三个定位点d{i},d{i+1},d{i+2},其中,i为循环变值参数,初值为0;
步骤02,判断三个定位点是否位于同一直线之上,如果是则执行步骤03,否则执行步骤04;
步骤03,删除位于中间的定位点d{i+1},然后执行步骤04;
步骤04,变值参数i加1,然后判断i+1值是否大于定位点的个数,如果是则执行步骤1,否则执行步骤01。
一较佳实施例中,该步骤2,它包括:
步骤21,依顺序读取三个定位点d{0},d{1},d{X},其中,X为循环变值参数,初值为2;
步骤22,判断由上述的三个定位点所围成的三角形区域之内是否有其它定位点,如果有则执行步骤23,否则执行步骤3;
步骤23,变值参数X加1,然后执行步骤21。
本技术方案与背景技术相比:本申请人巧妙地将判断一个坐标点是否属于不规则区域分解成判断一个坐标点是否属于三角形区域,以得出判断结果,而判断一个坐标点是否属于三角形区域,算法简单,计算量少,方法很多,无需浮点运算,因此它具有如下优点:1、不管支持不支持带浮点运算的处理器都能完成判断;2、判断效率高,判断结果精确。由于还包括逐次判断每连续的三个定位点是否位于同一直线之上,如果是则删除位于中间的定位点,因此能够减少计算次数,加快计算速度。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明一较佳实施例的判断坐标点是否属于区域的方法的流程图。
图2是本发明一实施例的区域图处理示意图之一。
图3是本发明一实施例的区域图处理示意图之二。
图4是本发明一实施例的区域图处理示意图之三。
图5是本发明一实施例的区域图处理示意图之四。
图6是本发明一实施例的区域图处理示意图之五。
图7是本发明一实施例的区域图处理示意图之六。
图8是本发明一实施例的区域图处理示意图之七。
图9是本发明一实施例的区域图处理示意图之八。
具体实施方式
一种判断坐标点是否属于区域的方法,它用在计算设备之中,该计算设备包括一CPU及一存储器。它用于在打开多个窗口时,窗口间将会有重叠现象,重叠区即是一个不规则区,鼠标点击时需要判断点击属于哪个窗口区域内。
本实施例中的区域为不规则区域或规则区域,由多个连续的定位点围成,该定位点包括d{1},d{2},……,d{n},n大于等于3。
请查阅图1,它绘示了一种判断坐标点是否属于区域的方法的流程图。一种判断坐标点是否属于区域的方法,该有效区域由多个连续的定位点围成,该定位点个数大于等于3个,该判断方法,它包括:
步骤0,去除位于同一直线上的连续的三个定位点的中间定位点;其中,该步骤0,它具体包括:
步骤01,从存储器之中读取连续的三个定位点d{i},d{i+1},d{i+2},其中,i为循环变值参数,初值为0;
步骤02,判断三个定位点是否位于同一直线之上,如果是则执行步骤03,否则执行步骤04;该判断可采用:判断三个定位点之间的夹角是否等于180度,由于该计算都是采用固点计算,因此无需浮点计算;
步骤03,删除位于中间的定位点d{i+1},然后执行步骤04;及
步骤04,变值参数i加1,然后判断i+1值是否大于定位点的个数,如果是则执行步骤1,否则执行步骤01;
步骤1,判断有效区域的定位点个数是大于3还是等于3,如果是大于3则执行步骤2,如果是等于3则执行步骤8;
步骤2,读取三个定位点,该三个定位点所围成的三角形区域之内没有其它定位点;其中,该步骤2,它具体包括:
步骤21,依顺序从存储器之中读取三个定位点d{0},d{1},d{X},其中,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{1}、d{2}、d{3}、d{4}、d{5}、d{6}、d{7}、d{8}、d{9}所围成。该判断方法,它包括:
步骤A,d0、d1、d2组成的三角形内有d4点;d1、d2、d3组成的三角形内没有其它点,所以选择d1、d2、d3组成的三角形区域A_1_2_3。三角形A_1_2_3的边d1d2与边d2d3顺时针夹角大于180度,如图2所示。判断坐标点是否位于A_1_2_3之内,如果是则表示该坐标点位于区域之内,否则去除A_1_2_3并执行下步骤;
步骤B,d0、d1、d3组成的三角形内有d4、d5、d6、d8点;d1、d3、d4组成的三角形内没有其它点,所以选择d1、d3、d4组成的三角形区域A_1_3_4。三角形A_1_3_4的边d1d3与边d3d4顺时针夹角大于180度,如图3所示。判断坐标点是否位于A_1_3_4之内,如果是则表示该坐标点位于区域之内,否则去除A_1_3_4并执行下步骤;
步骤C,d0、d1、d4组成的三角形内没有其它点,所以选择d0、d1、d4组成的三角形区域A_0_1_4。三角形A_0_1_4的边d0d1与边d1d4顺时针夹角大于180度,如图4所示。判断坐标点是否位于A_0_1_4之内,如果是则表示该坐标点位于区域之内,否则去除A_0_1_4并执行下步骤;
步骤D,d0、d4、d5组成的三角形边上有d8点;d4、d5、d6组成的三角形内没有其它点,所以选择d4、d5、d6组成的三角形区域A_4_5_6。三角形A_4_5_6的边d5d6与边d6d7顺时针夹角小于180度,如图5所示。判断坐标点是否位于A_4_5_6之内,如果是则表示该坐标点未位于区域之内,否则补全A_4_5_6并执行下步骤;
步骤E,d0、d4、d6组成的三角形边上有d8点;d4、d6、d7组成的三角形内没有其它点,所以选择d4、d6、d7组成的三角形区域A_4_6_7。三角形A_4_6_7的边d4d6与边d6d7顺时针夹角大于180度,如图6所示。判断坐标点是否位于A_4_6_7之内,如果是则表示该坐标点位于区域之内,否则去除A_4_6_7并执行下步骤;
步骤F,d0、d4、d7组成的三角形内有d8点;d4、d7、d8组成的三角形内没有其它点,所以选择d4、d7、d8组成的三角形区域A_4_7_8。三角形A_4_7_8的边d4d7与边d7d8顺时针夹角大于180度,如图7所示。判断坐标点是否位于A_4_7_8之内,如果是则表示该坐标点位于区域之内,否则去除A_4_7_8并执行下步骤;
步骤G,d0、d4、d8组成的三角形内没有其它点,所以选择d0、d4、d8组成的三角形区域A_0_4_8。三角形A_0_4_8的边d0d4与边d4d8顺时针夹角大于180度,如图8所示。判断坐标点是否位于A_0_4_8之内,如果是则表示该坐标点位于区域之内,否则去除A_0_4_8并执行下步骤;
步骤H,如图9所示,判断坐标点是否位于A_0_8_9之内,如果是则表示该坐标点位于区域之内,否则表示该坐标点未位于区域之内。
上述的实施例,主要是以嵌入式界面开发设计为例进行说明,但并不以此为限,同样,它可以应用在在GPRS(全球卫星定位***)中判断某个位置在哪个区域内,也既是经常需要判断坐标点是否属于区域,例如判断某个地理灾害是否位于某个国家之内。
以上所述,仅为本发明较佳实施例而已,故不能以此限定本发明实施的范围,即依本发明申请专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明专利涵盖的范围内。
Claims (3)
1.一种判断坐标点是否属于区域的方法,所述区域定义为有效区域,该有效区域由多个连续的定位点围成,该定位点个数大于等于3个,其特征是:该判断方法,它包括:
步骤1,判断有效区域的定位点个数是大于3还是等于3,如果是大于3则执行步骤2,如果是等于3则为三角形区域且执行步骤8;
步骤2,读取三个定位点,该三个定位点所围成的三角形区域之内没有其它定位点;它包括:
步骤21,依顺时针顺序读取三个定位点d{0},d{1},d{X},其中,X为循环变值参数,初值为2;
步骤22,判断由上述的三个定位点所围成的三角形区域之内是否有其它定位点,如果有则执行步骤23,否则执行步骤3;
步骤23,变值参数X加1,然后执行步骤21;
步骤3,判断所述的三个定位点的顺时针夹角,也既是“d{0}d{1}”和“d{1}d{X}”之间的顺时针夹角是否大于180度,如果是则执行步骤5,否则执行步骤4;
步骤4,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐标点未属于有效区域并执行步骤9,否则执行步骤7;
步骤5,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐标点属于有效区域并执行步骤9,否则执行步骤6;
步骤6,将有效区域分解成分解区域和新生成的三角形区域,将分解区域设置为新的有效区域并执行步骤1;
步骤7,将步骤4的三角形区域和有效区域之和设置为新的有效区域并执行步骤1;
步骤8,判断坐标点是否位于所述的三角形区域之内,如果是则表示该坐标点属于有效区域并执行步骤9,否则表示该坐标点未属于有效区域并执行步骤9;
步骤9,得出判断结果并结束。
2.根据权利要求1所述的一种判断坐标点是否属于区域的方法,其特征在于:该步骤1之前还包括:
步骤0,去除位于同一直线上的连续的三个定位点的中间定位点。
3.根据权利要求2所述的一种判断坐标点是否属于区域的方法,其特征在于:该步骤0,它包括:
步骤01,读取连续的三个定位点d{i},d{i+1},d{i+2},其中,i为循环变值参数,初值为0;
步骤02,判断三个定位点是否位于同一直线之上,如果是则执行步骤03,否则执行步骤04;
步骤03,删除位于中间的定位点d{i+1},然后执行步骤04;
步骤04,变值参数i加1,然后判断i+1值是否大于定位点的个数,如果是则执行步骤1,否则执行步骤01。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910112099 CN101593110B (zh) | 2009-06-17 | 2009-06-17 | 一种判断坐标点是否属于区域的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910112099 CN101593110B (zh) | 2009-06-17 | 2009-06-17 | 一种判断坐标点是否属于区域的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101593110A CN101593110A (zh) | 2009-12-02 |
CN101593110B true CN101593110B (zh) | 2013-03-06 |
Family
ID=41407780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910112099 Expired - Fee Related CN101593110B (zh) | 2009-06-17 | 2009-06-17 | 一种判断坐标点是否属于区域的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101593110B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111273971B (zh) * | 2018-12-04 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 视图中的信息处理方法、装置及存储介质 |
CN113050659B (zh) * | 2021-04-20 | 2022-05-31 | 福建首松智能科技有限公司 | 一种多台传菜机器人避让调度的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB257059A (en) * | 1925-07-06 | 1926-08-26 | Willem Cornelis Van Der Sterr | Improvements relating to levelling staves and like surveying instruments |
EP1329692A1 (de) * | 2002-01-17 | 2003-07-23 | Robert Bosch Gmbh | Verfahren zum Ermitteln von Kartendaten |
CN101033966A (zh) * | 2007-04-12 | 2007-09-12 | 上海交通大学 | 交通事故现场的摄影测量方法 |
-
2009
- 2009-06-17 CN CN 200910112099 patent/CN101593110B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB257059A (en) * | 1925-07-06 | 1926-08-26 | Willem Cornelis Van Der Sterr | Improvements relating to levelling staves and like surveying instruments |
EP1329692A1 (de) * | 2002-01-17 | 2003-07-23 | Robert Bosch Gmbh | Verfahren zum Ermitteln von Kartendaten |
CN101033966A (zh) * | 2007-04-12 | 2007-09-12 | 上海交通大学 | 交通事故现场的摄影测量方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101593110A (zh) | 2009-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20160377440A1 (en) | Map-centric map matching method and apparatus | |
CN104200042B (zh) | 一种定位数据轨迹跟踪方法 | |
CN108572999B (zh) | 兴趣面aoi轮廓的搜索方法及装置 | |
CN102568009B (zh) | 用于电子地图的线段抽稀装置及其方法 | |
CN109726489B (zh) | 一种建立辅助驾驶数据库的方法及*** | |
CN101727580B (zh) | 图像处理装置、图像处理单元和图像处理方法 | |
CN108229740B (zh) | 一种商圈边界的确定方法、装置、服务器及存储介质 | |
CN101593110B (zh) | 一种判断坐标点是否属于区域的方法 | |
CN106156245B (zh) | 一种电子地图中的线要素合并方法及装置 | |
CN115326051A (zh) | 一种基于动态场景的定位方法、装置、机器人及介质 | |
CN109341704B (zh) | 一种地图精度确定方法及装置 | |
CN114328785A (zh) | 提取道路信息的方法和装置 | |
CN113742437A (zh) | 地图更新方法、装置、电子设备和存储介质 | |
CN108053751B (zh) | 一种电子地图导航路线上绘制方向箭头的方法和装置 | |
CN102496330A (zh) | 六角网格同构模型及其建模方法和应用 | |
CN107977372B (zh) | 一种面要素注记的标注方法及装置 | |
CN100557656C (zh) | 车辆区域识别方法 | |
CN113868518A (zh) | 热力图生成方法、装置、电子设备及存储介质 | |
CN109949360B (zh) | 一种道路中心线的提取方法、装置、电子设备及存储介质 | |
JP2006268053A (ja) | 地形データ処理方法 | |
CN104801044A (zh) | 生成轨迹线顶点序列的方法和装置 | |
CN110736474A (zh) | 一种车辆的地图信息获取方法及装置 | |
CN112798006B (zh) | 一种不同路径的差异点分析方法、装置、存储介质及终端 | |
CN111159998B (zh) | 字体轮廓的层次结构分析方法及*** | |
CN115471586A (zh) | 基于道路面层级关系推导高架路段虚拟高程的方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130306 Termination date: 20130617 |