CN106843633A - 一种判断触点是否在不规则多边形内部的方法 - Google Patents
一种判断触点是否在不规则多边形内部的方法 Download PDFInfo
- Publication number
- CN106843633A CN106843633A CN201611091998.6A CN201611091998A CN106843633A CN 106843633 A CN106843633 A CN 106843633A CN 201611091998 A CN201611091998 A CN 201611091998A CN 106843633 A CN106843633 A CN 106843633A
- Authority
- CN
- China
- Prior art keywords
- point
- contact
- line
- axis
- calculated
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04812—Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Electron Beam Exposure (AREA)
- Image Analysis (AREA)
- Pinball Game Machines (AREA)
Abstract
本技术方案涉及一种判断触点是否在不规则多边形内部的方法,本发明的独到之处在于:运用数学定理:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目,如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部来实现判断触点是否在不规则多边形内部。本发明的优点在于:运用此方法能将图片区域划分成多个不规则的形状,并可有效的识别用户的点击区域。
Description
技术领域
本技术方案涉及一种判断触点是否在不规则多边形内部的方法。
背景技术
为了能在移动设备中以传统读报的习惯阅读报纸,需要将一块图片区域对应到具体的报道内容,因此就产生了如何识别用户点击的图片区域的问题。目前常规的处理办法存在如下缺陷:首先是将图片区域通过标准的4点划分为多个标准的矩形,若页面排版不是规矩的矩形,那么对图片的划分就与实际不相符,会导致用户点击文章A的区域打开文章B的情况。其次是实现了对不规则区域的标记,但是会出现用户点击某个位置时激活两个区域,不能准确识别用户的意图。
发明内容
本发明的目的在于提供一种判断触点是否在不规则多边形内部的方法,运用此方法能将图片区域划分成多个不规则的形状,并可有效的识别用户的点击区域。
实现本发明目的的技术方案是:一种判断触点是否在不规则多边形内部的方法,其特征在于:包括以下步骤:
1.1.将不规则多边形的所有坐标点集合作为一个数组输入进行计算;
1.2.将触点坐标作为一个数组输入进行计算;
1.3.判断点(a,b)与点(c,d)连线,是否与点(0,y)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.4.将触点的x轴的平行线与每一条边的焦点数计数,如果步骤1.3中返回的布尔值为真,则将x轴焦点数计数+1;
1.5.判断点(a,b)与点(c,d)连线,是否与点(x,0)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.6.将触点的y轴的平行线与每一条边的焦点数计数,如果步骤1.5中返回的布尔值为真,则将y轴焦点数计数+1;
1.7.判断是否还有未计算的点,将步骤1.1中输入的坐标集和数组减去步骤1.3与步骤1.4中已经计算了的坐标点,若得出的值大于0则还有未计算的点;
1.8.若还有未参与计算的点,则将步骤1.3中后2个数与步骤1.7中剩余的点取前2个数,替换为abcd,代入步骤1.3至1.7中循环;
1.9.若全部点都参与了计算,则将最后2个点(i,j)与点(a,b)替换为abcd代入步骤1.3至1.6中计算;
1.10.判断x轴焦点数与y轴焦点数是否都是奇数:判断步骤1.4和步骤1.6的计数值是否都为奇数,并输出布尔值;
1.11.若步骤1.10输出的布尔值为真,则得到结论触点在多边形内部,反之则得到结论触点在多边形外部。
本发明的优点在于:1.能将图片区域划分成多个不规则的形状,并可有效的识别用户的点击区域。2.点击的位置归属识别准确。技术实现未依赖第三方工具,完全基于最基本的数学定理计算。3.语法简单。因为仅使用了大于、小于的比较及短路与和短路或计算,能够方便快速到移植到各计算机语言平台。
附图说明
图1是本发明的逻辑流程图;
图2是实施例一的附图;
图3是实施例二的附图。
具体实施方式
本发明涉及一种判断触点是否在不规则多边形内部的方法,其特征在于:包括以下步骤:
1.1.将不规则多边形的所有坐标点集合作为一个数组输入进行计算;
1.2.将触点坐标作为一个数组输入进行计算;
1.3.判断点(a,b)与点(c,d)连线,是否与点(0,y)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.4.将触点的x轴的平行线与每一条边的焦点数计数,如果步骤1.3中返回的布尔值为真,则将x轴焦点数计数+1;
1.5.判断点(a,b)与点(c,d)连线,是否与点(x,0)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.6.将触点的y轴的平行线与每一条边的焦点数计数,如果步骤1.5中返回的布尔值为真,则将y轴焦点数计数+1;
1.7.判断是否还有未计算的点,将步骤1.1中输入的坐标集和数组减去步骤1.3与步骤1.4中已经计算了的坐标点,若得出的值大于0则还有未计算的点;
1.8.若还有未参与计算的点,则将步骤1.3中后2个数与步骤1.7中剩余的点取前2个数,替换为abcd,代入步骤1.3至1.7中循环;
1.9.若全部点都参与了计算,则将最后2个点(i,j)与点(a,b)替换为abcd代入步骤1.3至1.6中计算;
1.10.判断x轴焦点数与y轴焦点数是否都是奇数:判断步骤1.4和步骤1.6的计数值是否都为奇数,并输出布尔值;
1.11.若步骤1.10输出的布尔值为真,则得到结论触点在多边形内部,反之则得到结论触点在多边形外部。
实施例一、
A、如图2,输入不规则多边形顺时针坐标集合(1,5,3,5,3,3,4,3,4,1,1,1)
B、输入触点的坐标:(2,2);
C、判断点(1,5)与点(3,5)的连线,是否与点(0,2)与触点坐标(2,2)连线有交点,(1>2&&2>3&&2>5&&2>5)||(1<2&&2<3&&2>5&&2>5)=false ,故无交点。
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、点(1,5)与点(3,5)连线,是否与点(2,0)与触点坐标(2,2)连线有交点,(5>2&&2>5&&2>1&&2>3)||(5<2&&2<5&&2>1&&2>3)=false ,故无交点
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算4个点,还有8个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(3,5,3,3),代入步骤C、D、E、F中循环
C、(3>2&&2>3&&2>5&&2>3)||(3<2&&2<3&&2>5&&2>3)=false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(5>2&&2>3&&2>3&&2>3)||(5<2&&2<3&&2>3&&2>3)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算6个点,还有6个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(3,3,4,3),代入步骤C、D、E、F中循环:
C、(3>2&&2>4&&2>3&&2>3)||(3<2&&2<4&&2>3&&2>3)=false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(3>2&&2>3&&2>3&&2>4)||(3<2&&2<3&&2>3&&2>4)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0
G、是否还有未计算的点:一共12个点,已计算8个点,还有4个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(4,3,4,1),代入步骤C、D、E、F中循环
C、(4>2&&2>4&&2>3&&2>1)||(4<2&&2<4&&2>3&&2>1)=false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(3>2&&2>1&&2>4&&2>4)||(3<2&&2<1&&2>4&&2>4)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算10个点,还有2个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(4,1,1,1),代入步骤C、D、E、F中循环
C、(4>2&&2>1&&2>1&&2>1)||(4<2&&2<1&&2>1&&2>1)=true
D、触点的x轴的平行线与每一条边的焦点数计数:1;
E、(1>2&&2>1&&2>4&&2>1)||(1<2&&2<1&&2>4&&2>1)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
I、最后2个点(1,1)与起始点(1,5)的连线是否被计算:在步骤G中循环剩余2个点或0个点是否与第一个坐标进行步骤C、D、E、F的计算;
J、将最后2个点(1,1)与点(1,5)替换为abcd进入计算:步骤A中最后的2个点与为首的2个点,一起代入步骤C、D、E、F中循环
C、(1>2&&2>1&&2>1&&2>5)||(1<2&&2<1&&2>1&&2>5)=false
D、触点的x轴的平行线与每一条边的焦点数计数:1;
E、(1>2&&2>5&&2>1&&2>1)||(1<2&&2<5&&2>1&&2>1)=true
F、触点的y轴的平行线与每一条边的焦点数计数:1;
K、判断x轴焦点数与y轴焦点数是否都是奇数:判断步骤D计数值为1和步骤F的计数值为1,都为奇数,并输出布尔值true;
L、得出结论触点在多边形内部:K输出的布尔值为真,则得到结论触点在多边形内部;
实施例二、
A、如图3,输入不规则多边形顺时针坐标集合(1,5,3,5,3,3,4,3,4,1,1,1)
B、输入触点的坐标:(4,5);
C、判断点(1,5)与点(3,5)的连线,是否与点(0,5)与触点坐标(4,5)连线有交点,(1>4&&4>3&&5>5&&5>5)||(1<4&&4<3&&5>5&&5>5)=false ,故无交点。
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、点(1,5)与点(3,5)连线,是否与点(4,0)与触点坐标(4,5)连线有交点,(5>5&&5>5&&4>1&&4>3)||(5<5&&5<5&&4>1&&4>3)= false,故无交点
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算4个点,还有8个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(3,5,3,3),代入步骤C、D、E、F中循环
C、(3>4&&4>3&&5>5&&5>3)||(3<4&&4<3&&5>5&&5>3)=false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(5>5&&5>3&&4>3&&4>3)||(5<5&&5<3&&4>3&&4>3)= false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算6个点,还有6个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(3,3,4,3),代入步骤C、D、E、F中循环:
C、(3>4&&4>4&&5>3&&5>3)||(3<4&&4<4&&5>3&&5>3)= false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(3>5&&5>3&&4>3&&4>4)||(3<5&&5<3&&4>3&&4>4)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算8个点,还有4个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(4,3,4,1),代入步骤C、D、E、F中循环
C、(4>4&&4>4&&5>3&&5>1)||(4<4&&4<4&&5>3&&5>1)= false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(3>5&&5>1&&4>4&&4>4)||(3<5&&5<1&&4>4&&4>4)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
G、是否还有未计算的点:一共12个点,已计算10个点,还有2个点未计算。
H、将未计算的2个数与上一步骤中后2个数替换为abcd进入循环:步骤C中后2个数与步骤G中剩余的点取前2个数(4,1,1,1),代入步骤C、D、E、F中循环
C、(4>4&&4>1&&5>1&&5>1)||(4<4&&4<1&&5>1&&5>1)= false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(1>5&&5>1&&4>4&&4>1)||(1<5&&5<1&&4>4&&4>1)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
I、最后2个点(1,1)与起始点(1,5)的连线是否被计算:在步骤G中循环剩余2个点或0个点是否与第一个坐标进行步骤C、D、E、F的计算;
J、将最后2个点(1,1)与点(1,5)替换为abcd进入计算:步骤A中最后的2个点与为首的2个点,一起代入步骤C、D、E、F中循环
C、(1>4&&4>1&&5>1&&5>5)||(1<4&&4<1&&5>1&&5>5)=false
D、触点的x轴的平行线与每一条边的焦点数计数:0;
E、(1>5&&5>5&&4>1&&4>1)||(1<5&&5<5&&4>1&&4>1)=false
F、触点的y轴的平行线与每一条边的焦点数计数:0;
K、判断x轴焦点数与y轴焦点数是否都是奇数:判断步骤D计数值为0和步骤F的计数值为0,都不是奇数,并输出布尔值flase;
L、得出结论触点在多边形外部:E输出的布尔值为假,则得到结论触点在多边形外部。
Claims (1)
1.一种判断触点是否在不规则多边形内部的方法,其特征在于:包括以下步骤:
1.1.将不规则多边形的所有坐标点集合作为一个数组输入进行计算;
1.2.将触点坐标作为一个数组输入进行计算;
1.3.判断点(a,b)与点(c,d)连线,是否与点(0,y)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.4.将触点的x轴的平行线与每一条边的焦点数计数,如果步骤1.3中返回的布尔值为真,则将x轴焦点数计数+1;
1.5.判断点(a,b)与点(c,d)连线,是否与点(x,0)与触点坐标(x,y)连线有交点,并返回布尔值供后续计算;
1.6.将触点的y轴的平行线与每一条边的焦点数计数,如果步骤1.5中返回的布尔值为真,则将y轴焦点数计数+1;
1.7.判断是否还有未计算的点,将步骤1.1中输入的坐标集和数组减去步骤1.3与步骤1.4中已经计算了的坐标点,若得出的值大于0则还有未计算的点;
1.8.若还有未参与计算的点,则将步骤1.3中后2个数与步骤1.7中剩余的点取前2个数,替换为abcd,代入步骤1.3至1.7中循环;
1.9.若全部点都参与了计算,则将最后2个点(i,j)与点(a,b)替换为abcd代入步骤1.3至1.6中计算;
1.10.判断x轴焦点数与y轴焦点数是否都是奇数:判断步骤1.4和步骤1.6的计数值是否都为奇数,并输出布尔值;
1.11.若步骤1.10输出的布尔值为真,则得到结论触点在多边形内部,反之则得到结论触点在多边形外部。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611091998.6A CN106843633A (zh) | 2016-12-01 | 2016-12-01 | 一种判断触点是否在不规则多边形内部的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611091998.6A CN106843633A (zh) | 2016-12-01 | 2016-12-01 | 一种判断触点是否在不规则多边形内部的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106843633A true CN106843633A (zh) | 2017-06-13 |
Family
ID=59146018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611091998.6A Pending CN106843633A (zh) | 2016-12-01 | 2016-12-01 | 一种判断触点是否在不规则多边形内部的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106843633A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918468A (zh) * | 2019-03-21 | 2019-06-21 | 四川长虹电器股份有限公司 | 基于墨卡托投影的物联网设备位置数据区域筛选方法 |
CN110544064A (zh) * | 2019-09-04 | 2019-12-06 | 拉扎斯网络科技(上海)有限公司 | 一种数据处理的方法、装置、可读存储介质和电子设备 |
WO2020114210A1 (zh) * | 2018-12-04 | 2020-06-11 | 腾讯科技(深圳)有限公司 | 视图中的信息处理方法、装置及存储介质 |
CN112819986A (zh) * | 2021-02-03 | 2021-05-18 | 广东共德信息科技有限公司 | 一种考勤系统和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751665A (zh) * | 2008-12-15 | 2010-06-23 | 富士通株式会社 | 检测当前像素是否位于多边形中的方法和系统 |
CN105869188A (zh) * | 2016-04-22 | 2016-08-17 | 广州日滨科技发展有限公司 | 点对多边形方位关系的检测方法和系统 |
-
2016
- 2016-12-01 CN CN201611091998.6A patent/CN106843633A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751665A (zh) * | 2008-12-15 | 2010-06-23 | 富士通株式会社 | 检测当前像素是否位于多边形中的方法和系统 |
CN105869188A (zh) * | 2016-04-22 | 2016-08-17 | 广州日滨科技发展有限公司 | 点对多边形方位关系的检测方法和系统 |
Non-Patent Citations (1)
Title |
---|
许志闻 等: "《计算机图形学》", 31 December 2013, 上海交通大学出版社 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020114210A1 (zh) * | 2018-12-04 | 2020-06-11 | 腾讯科技(深圳)有限公司 | 视图中的信息处理方法、装置及存储介质 |
US11531443B2 (en) | 2018-12-04 | 2022-12-20 | Tencent Technology (Shenzhen) Company Limited | Method, apparatus, and storage medium for determining relative position relationship of click event |
CN109918468A (zh) * | 2019-03-21 | 2019-06-21 | 四川长虹电器股份有限公司 | 基于墨卡托投影的物联网设备位置数据区域筛选方法 |
CN110544064A (zh) * | 2019-09-04 | 2019-12-06 | 拉扎斯网络科技(上海)有限公司 | 一种数据处理的方法、装置、可读存储介质和电子设备 |
CN112819986A (zh) * | 2021-02-03 | 2021-05-18 | 广东共德信息科技有限公司 | 一种考勤系统和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106843633A (zh) | 一种判断触点是否在不规则多边形内部的方法 | |
WO2009035108A1 (ja) | 対応関係学習装置および方法ならびに対応関係学習用プログラム、アノテーション装置および方法ならびにアノテーション用プログラム、および、リトリーバル装置および方法ならびにリトリーバル用プログラム | |
CN106791804B (zh) | 用于摄像头模组的污点检测方法及装置 | |
TWI403940B (zh) | 光感式觸控板之觸碰偵測方法及運用此方法之觸控式電子裝置 | |
DE602007009705D1 (de) | Verfahren zur bildverarbeitung | |
CN110969046B (zh) | 人脸识别方法、设备及计算机可读存储介质 | |
CN109165657A (zh) | 一种基于改进sift的图像特征检测方法及装置 | |
CN105389541B (zh) | 指纹图像的识别方法及装置 | |
CN106843141A (zh) | 数值控制装置 | |
CN111383651A (zh) | 一种语音降噪方法、装置及终端设备 | |
CN108614987A (zh) | 数据处理的方法、装置和机器人 | |
JP2020510897A5 (zh) | ||
Themessl-Huber | Evaluation of the [Chi]^ sup 2^-statistic and different fit-indices under misspecified number of factors in confirmatory factor analysis | |
WO2020168861A1 (zh) | 指纹模板获取方法及相关装置 | |
CN106951811A (zh) | 一种图像处理方法及终端 | |
CN107870685B (zh) | 一种触控操作识别方法和装置 | |
CN111260759B (zh) | 一种路径确定方法及装置 | |
CN110968938B (zh) | 一种用于电磁暂态仿真的理想开关过程分析方法及系统 | |
CN104881187B (zh) | 信号处理方法 | |
CN110688704A (zh) | 家装设计方法、系统及电子设备 | |
Kim et al. | A Study on Readiness Assessment for the Acquisition of high quality weapon system | |
JP2019049961A5 (zh) | ||
WO2018193867A3 (en) | PHYSIOLOGICAL INFORMATION WAVEFORM PROCESSING METHOD, PROGRAM, COMPUTER-READABLE STORAGE MEDIUM, AND PHYSIOLOGICAL INFORMATION WAVEFORM PROCESSING APPARATUS | |
KR101615912B1 (ko) | 방향성을 갖는 데이터의 그래프 생성 방법 및 장치 | |
CN107944372B (zh) | 一种信号有效性识别的方法和设备以及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170613 |
|
RJ01 | Rejection of invention patent application after publication |