亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法和系統(tǒng)的制作方法

文檔序號(hào):10513149閱讀:370來(lái)源:國(guó)知局
點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法和系統(tǒng),其方法包括:以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)的坐標(biāo)值;根據(jù)各端點(diǎn)的坐標(biāo)值檢測(cè)各端點(diǎn)是否均在XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);若否,則遍歷各端點(diǎn)的Y坐標(biāo)值,獲取滿足yi·yi?1<0的端點(diǎn)形成的新點(diǎn)集合;確定新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;判斷各直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);若為奇數(shù),則判定測(cè)試點(diǎn)在多邊形內(nèi)部;若為偶數(shù),或者各端點(diǎn)均在X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè),則判定測(cè)試點(diǎn)在多邊形外部。本發(fā)明方案適用于點(diǎn)對(duì)凹多邊形和點(diǎn)對(duì)凸多邊形方位關(guān)系的檢測(cè),增強(qiáng)了包容性,且具有檢測(cè)效率高與檢測(cè)準(zhǔn)確性高的有益效果。
【專利說(shuō)明】
點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)圖形技術(shù)領(lǐng)域,特別是涉及一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法和系統(tǒng)。
【背景技術(shù)】
[0002]在計(jì)算機(jī)圖形學(xué)、計(jì)算幾何和地理信息系統(tǒng)等技術(shù),經(jīng)常需要判斷點(diǎn)與多邊形的位置關(guān)系。例如,在GIS應(yīng)用中,可以直觀的查看移動(dòng)通信設(shè)備網(wǎng)元(比如基站、小區(qū)等)的地理分布情況。當(dāng)出現(xiàn)某個(gè)區(qū)域通話質(zhì)量差引起告警或故障時(shí),維護(hù)工程師會(huì)在GIS上定位到這個(gè)區(qū)域,并圈選一個(gè)多邊形區(qū)域,進(jìn)而通過(guò)對(duì)這個(gè)區(qū)域內(nèi)的小區(qū)指標(biāo)進(jìn)行匯總、關(guān)聯(lián)分析,最終定位到具體故障的小區(qū)和故障原因。這是運(yùn)營(yíng)商非常關(guān)心并迫切的使用場(chǎng)景。而解決這類問(wèn)題基礎(chǔ)的技術(shù)就是要判斷點(diǎn)與多邊形的位置關(guān)系。如果不能準(zhǔn)確并快速的識(shí)別多邊形內(nèi)的小區(qū),將會(huì)影響維護(hù)工程師定位故障甚至做出錯(cuò)誤的決策。
[0003]目前,對(duì)于凸多邊形一般采用方位法,即將多邊形各條邊形成有向向量,再判斷測(cè)試點(diǎn)的在各向量的左右關(guān)系;對(duì)于凹多邊形,一般采用射線法,即測(cè)試點(diǎn)與各頂點(diǎn)相交邊界次數(shù)來(lái)判定內(nèi)外關(guān)系,經(jīng)分析,該方式對(duì)于特殊情況有誤差。
[0004]另外,還可以通過(guò)測(cè)試點(diǎn)與所有多邊形頂點(diǎn)的角度和是否等于360度來(lái)判斷,也可以通過(guò)點(diǎn)與各邊的組成面積是否和等于多邊形面積判斷,這些方式存在一定的理論與實(shí)際計(jì)算不符合的情況,實(shí)際計(jì)算有難度。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的在于提供一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,可以在增強(qiáng)包容性的基礎(chǔ)上,提升檢測(cè)效率與準(zhǔn)確性。
[0006]本發(fā)明的目的通過(guò)如下技術(shù)方案實(shí)現(xiàn):
[0007]—種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,包括:
[0008]以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;
[0009]根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);
[0010]若各所述端點(diǎn)不均在所述坐標(biāo)X軸的同一側(cè),且各所述端點(diǎn)不均在所述Y坐標(biāo)軸的同一側(cè),則遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,yH表示第1-l個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;
[0011 ]確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;
[0012]判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);
[0013]若為奇數(shù),則判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部;
[0014]若為偶數(shù),或者各所述端點(diǎn)均在所述X坐標(biāo)軸的同一側(cè),或者各所述端點(diǎn)均在所述Y坐標(biāo)軸的同一側(cè),則判定所述測(cè)試點(diǎn)在所述多邊形外部。
[0015]—種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),包括:
[0016]第一坐標(biāo)獲取模塊,用于以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;
[0017]第一檢測(cè)模塊,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);
[0018]第一遍歷模塊,用于在所述檢測(cè)模塊的檢測(cè)結(jié)果為否時(shí),遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,7^表示第1-Ι個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;
[0019]第一直線確定模塊,用于確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;
[0020]第一判斷模塊,用于判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);
[0021]第一結(jié)果確定模塊,用于在所述第一判斷模塊的判斷結(jié)果為是時(shí),判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部,在所述檢測(cè)模塊的判斷結(jié)果為是時(shí),或者在所述判斷模塊的判斷結(jié)果為否時(shí),判定所述測(cè)試點(diǎn)在所述多邊形外部。
[0022]本發(fā)明的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方案,其是以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);若各所述端點(diǎn)不均在所述坐標(biāo)X軸的同一側(cè),且各所述端點(diǎn)不均在所述Y坐標(biāo)軸的同一側(cè),則遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,yy表示第1-Ι個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);若為奇數(shù),則判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部;若為偶數(shù),或者各所述端點(diǎn)均在所述X坐標(biāo)軸的同一側(cè),或者各所述端點(diǎn)均在所述Y坐標(biāo)軸的同一側(cè),則判定所述測(cè)試點(diǎn)在所述多邊形外部。本發(fā)明方案既適用于點(diǎn)對(duì)凹多邊形方位關(guān)系的檢測(cè),也適用于點(diǎn)對(duì)凸多邊形方位關(guān)系的檢測(cè),增強(qiáng)了包容性,且具有檢測(cè)效率高與檢測(cè)準(zhǔn)確性高的有益效果。
【附圖說(shuō)明】
[0023]圖1為本發(fā)明實(shí)施例一的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法的實(shí)現(xiàn)流程示意圖;
[0024]圖2為圖1的步驟S102的實(shí)現(xiàn)流程示意圖一;
[0025 ]圖3為圖1的步驟S102的實(shí)現(xiàn)流程示意圖二;
[0026]圖4為圖1的步驟S103的實(shí)現(xiàn)流程示意圖一;
[0027 ]圖5為圖1的步驟S103的實(shí)現(xiàn)流程示意圖二;
[0028]圖6為各端點(diǎn)均在X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)的示意圖;
[0029]圖7為在遍歷各端點(diǎn)時(shí)去除端點(diǎn)或者記錄端點(diǎn)的示意圖;
[0030]圖8為本發(fā)明實(shí)施例二的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng)的組成結(jié)構(gòu)意圖;
[0031]圖9為圖8中的第一遍歷模塊的組成示意圖一;
[0032]圖10為圖8中的第一遍歷模塊的組成示意圖二;
[0033]圖11為圖8中的檢測(cè)模塊的組成示意圖一;
[0034]圖12為圖8中的檢測(cè)模塊的組成示意圖二。
【具體實(shí)施方式】
[0035]為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的【具體實(shí)施方式】?jī)H僅用以解釋本發(fā)明,并不限定本發(fā)明的保護(hù)范圍。
[0036]實(shí)施例一
[0037]本發(fā)明實(shí)施例一提供一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法。圖1為本發(fā)明實(shí)施例一的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法的實(shí)現(xiàn)流程示意圖,如圖1所示,該實(shí)施例中的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法包括:
[0038]步驟SlOl:以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;
[0039]具體地,可以以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn)建立XY直角坐標(biāo)系,獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值,例如,多邊形的各端點(diǎn)分別為Po、P1、P2........Pn,η為正整數(shù),各個(gè)各端點(diǎn)的坐標(biāo)值分別為Pq(xq,Yq)、Pi(xi,yi)、P2(X2,y2)、......、Ρη(χη,
yn);可以采用任意可以實(shí)現(xiàn)的方式獲取各端點(diǎn)的坐標(biāo)值,在此不予贅述。
[0040]步驟S102:根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè),若否(即各所述端點(diǎn)不均在所述坐標(biāo)X軸的同一側(cè),且各所述端點(diǎn)不均在所述Y坐標(biāo)軸的同一側(cè)),進(jìn)入步驟S103,若是(即各所述端點(diǎn)均在所述X坐標(biāo)軸的同一側(cè),或者各所述端點(diǎn)均在所述Y坐標(biāo)軸的同一側(cè)),進(jìn)入步驟S107;
[0041 ]在其中一個(gè)實(shí)施例中,如圖2所示,所述根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)可以包括:
[0042]步驟S201:根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù);
[0043]步驟S202:根據(jù)各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù)檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);
[0044]具體地,若各所述端點(diǎn)的X坐標(biāo)值均為非正數(shù)或者均為非負(fù)數(shù),或者各所述端點(diǎn)的Y坐標(biāo)值均為非正數(shù)或者均為非負(fù)數(shù),則確定所述各所述端點(diǎn)均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè),否則,則確定所述各所述端點(diǎn)不均在所述XY直角坐標(biāo)系X坐標(biāo)軸的同一側(cè)且不均在所述XY直角坐標(biāo)系Y坐標(biāo)軸的同一側(cè)。
[0045]在其中一個(gè)實(shí)施例中,如圖2所示,所述根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)可以包括:
[0046]步驟S301:根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)所在象限;
[0047]步驟S302:根據(jù)各所述端點(diǎn)所在象限檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);
[0048]具體地,若各所述端點(diǎn)均在第一象限、第二象限和所述Y坐標(biāo)軸的正半軸上,或者各所述端點(diǎn)均在第二象限、第三象限和所述X坐標(biāo)軸的負(fù)半軸上,或者各所述端點(diǎn)均在第三象限、第四象限和所述Y坐標(biāo)軸的負(fù)半軸上,或者各所述端點(diǎn)均在第四象限、第一象限和所述X坐標(biāo)軸的正半軸上,則確定所述各所述端點(diǎn)均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè),否則,則確定所述各所述端點(diǎn)不均在所述XY直角坐標(biāo)系X坐標(biāo)軸的同一側(cè)且不均在所述XY直角坐標(biāo)系Y坐標(biāo)軸的同一側(cè);
[0049]需要說(shuō)明的,根據(jù)實(shí)際需要,也可以采用其他方式實(shí)現(xiàn)對(duì)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)的檢測(cè),檢測(cè)方式不限于上述兩個(gè)實(shí)施例中所描述的方式。
[0050]步驟S103:遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1fO的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,yH表示第1-Ι個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;
[0051]在其中一個(gè)實(shí)施例中,所述遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合可以包括:
[0052]步驟401:判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零,若是,進(jìn)入步驟S402,若否,進(jìn)入步驟S403;
[0053]其中,若當(dāng)前端點(diǎn)為Pj,當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)為Pj-1,本步驟是判斷yj.yj-1<0是否成立,yj表示當(dāng)前端點(diǎn)的Y坐標(biāo)值,yj-1表示當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值;
[0054]步驟402:記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn),將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),返回步驟S401;
[0055]若當(dāng)前端點(diǎn)為P」,則當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)為Pj+2,在返回步驟S401后,判斷yj+i.yj+2<0是否成立;
[0056]步驟403:將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),返回步驟S401;
[0057]若當(dāng)前端點(diǎn)為P」,則當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)為Pp1,在返回步驟S401后,判斷yj.yj+i<0是否成立;
[0058]也就是說(shuō),在當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積小于零時(shí),需要對(duì)記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn),并從當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)繼續(xù),而在當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積不小于零時(shí),不需要對(duì)進(jìn)行端點(diǎn)記錄,則可以去除當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn),并從當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)繼續(xù);
[0059]步驟404:在遍歷完各所述端點(diǎn)的Y坐標(biāo)值后,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。
[0060]在其中一個(gè)實(shí)施例中,提供一種較佳的獲取所述新點(diǎn)集合的方式,所述遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合可以包括:
[0061 ]步驟S501:判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零,若是,進(jìn)入步驟S502,若否,進(jìn)入步驟S507;
[0062]步驟S502:記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn),進(jìn)入步驟S503;
[0063]步驟S503:判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn),若否,進(jìn)入步驟S504,若是,進(jìn)入步驟S509 ;
[0064]步驟S504:判斷當(dāng)前端點(diǎn)是否是所述多邊形的倒數(shù)第二個(gè)需要被遍歷的端點(diǎn),若否,進(jìn)入步驟S505,若是,進(jìn)入步驟S506 ;
[0065]步驟S505:將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),返回步驟S501;
[0066]步驟S506:記錄當(dāng)前端點(diǎn)對(duì)應(yīng)的下一端點(diǎn),進(jìn)入步驟S509;
[0067]步驟S507:判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)被遍歷的端點(diǎn),若否,進(jìn)入步驟S508,若是,進(jìn)入步驟S509 ;
[0068]步驟S508:將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),返回步驟S501 ;
[0069]步驟S509:確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。
[0070]需要說(shuō)明的,根據(jù)實(shí)際需要,也可以采用其他方式實(shí)現(xiàn)對(duì)所述新點(diǎn)集合的獲取,獲取方式不限于上述兩個(gè)實(shí)施例中所描述的方式。
[0071 ]步驟S104:確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;
[0072]例如,新點(diǎn)集合中各個(gè)點(diǎn)分別為........P、,m為正整數(shù),各個(gè)各點(diǎn)的坐標(biāo)值分另lJ 為P, O (X, O,y, O)、P, I (X, I,y, I)、P, 2 (X, 2,y, 2)、......、P, m(x, n,y, n),各連續(xù)兩點(diǎn)包括Iy O與]^ I^P7 I與]^ 2, P7 2與]^ 3,......,P、—I與]^ ,m,首尾兩點(diǎn)指Iy 0與1^ m,可以分別根據(jù)對(duì)應(yīng)的兩個(gè)點(diǎn)的坐標(biāo)獲取一個(gè)直線方程aix+biy = Ci,共獲得m個(gè)直線方程,即,111條直線;
[0073]步驟S105:判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù),若是,進(jìn)入步驟S106,若否,進(jìn)入步驟S107;
[0074]具體地,可以分別檢測(cè)各所述直線是否與所述X坐標(biāo)軸的正半軸相交,確定與所述X坐標(biāo)軸的正半軸相交的直線的條數(shù),該條數(shù)等于所述交點(diǎn)數(shù);
[0075]步驟S106:判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部;
[0076]步驟S107:判定所述測(cè)試點(diǎn)在所述多邊形外部。
[0077]據(jù)此,根據(jù)上述實(shí)施例的方案,其是以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);若各所述端點(diǎn)不均在所述坐標(biāo)X軸的同一側(cè),且各所述端點(diǎn)不均在所述Y坐標(biāo)軸的同一側(cè),則遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,y1-ι表示第i_1個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);若為奇數(shù),則判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部;若為偶數(shù),或者各所述端點(diǎn)均在所述X坐標(biāo)軸的同一側(cè),或者各所述端點(diǎn)均在所述Y坐標(biāo)軸的同一側(cè),則判定所述測(cè)試點(diǎn)在所述多邊形外部。本發(fā)明方案既適用于點(diǎn)對(duì)凹多邊形方位關(guān)系的檢測(cè),也適用于點(diǎn)對(duì)凸多邊形方位關(guān)系的檢測(cè),增強(qiáng)了包容性,且具有檢測(cè)效率高與檢測(cè)準(zhǔn)確性高的有益效果。
[0078]為了便于理解本發(fā)明的方案,以下以一個(gè)具體示例進(jìn)行說(shuō)明,但這并不構(gòu)成對(duì)本發(fā)明方案的限定。
[0079]步驟一、以該測(cè)試點(diǎn)為XY直角坐標(biāo)系原點(diǎn)建立坐標(biāo)系,則多邊形的各個(gè)端點(diǎn)坐標(biāo)分別是Pq(xq,Yo),Pi(xi,yi),P2(x2,y2),......,Pn(xn,yn);
[0080]步驟二、若多邊形PO?Pn所有端點(diǎn)均在XY直角坐標(biāo)系的第一象限和第二象限,或者均在XY直角坐標(biāo)系的第二象限和第三象限,或者均在XY直角坐標(biāo)系的第三象限和第四象限,或者均在XY直角坐標(biāo)系的第四象限和第一象限,圖6的第①、②、③、④的情況,得出測(cè)試點(diǎn)在多邊形外部的結(jié)果,結(jié)束流程。否則進(jìn)行步驟三;
[0081 ]步驟三、遍歷多邊形所有點(diǎn)的Y坐標(biāo);
[0082]I)前一個(gè)端點(diǎn)與當(dāng)前端點(diǎn)的乘積大于等于0,則去除前一個(gè)端點(diǎn),繼續(xù)遍歷流程,即Yn-AYn>O,或者Yn-AYn=O,則去除第η-1個(gè)端點(diǎn),以第η+1個(gè)端點(diǎn)作為當(dāng)前端點(diǎn)繼續(xù),也即去除圖7中的虛線部分的端點(diǎn);
[0083]2)前一個(gè)與后一個(gè)的乘積小于0,則記錄下兩個(gè)端點(diǎn),繼續(xù)遍歷流程,S卩Yn-AYnSO,記錄第η-1點(diǎn)和第η點(diǎn),以第η+2個(gè)端點(diǎn)作為當(dāng)前端點(diǎn)繼續(xù);
[0084]該步驟把相鄰兩點(diǎn)的同在第一二象限和同在第三四象限的點(diǎn)去除,結(jié)果重新得出一個(gè)新的點(diǎn)集合[Ρ%….Ρ\],即如圖7中的P%,,PS,PS;
[0085]步驟四、重新把新的點(diǎn)集合的P'按0?m點(diǎn)順序形成在坐標(biāo)系的直線。如圖7的直線;
[0086]I)若所有直線與X軸正方向相交的個(gè)數(shù)為偶數(shù)個(gè),則得出結(jié)果:點(diǎn)在多邊形外部;
[0087]2)若所有直線與X軸正方向相交的個(gè)數(shù)為奇數(shù)個(gè),則得出結(jié)果:點(diǎn)在多邊形內(nèi)部。
[0088]實(shí)施例二
[0089]基于上述的實(shí)施例一,本發(fā)明實(shí)施例二提供一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),參見圖8所示,為本發(fā)明實(shí)施例二的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng)的組成結(jié)構(gòu)示意圖;如圖8所示,該實(shí)施例中的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng)包括坐標(biāo)獲取模塊601、檢測(cè)模塊602、遍歷模塊603、直線確定模塊604、判斷模塊605、結(jié)果確定模塊606,其中:
[0090]坐標(biāo)獲取模塊601,用于以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值;
[0091]檢測(cè)模塊602,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè);
[0092]遍歷模塊603,用于在檢測(cè)模塊602的檢測(cè)結(jié)果為否時(shí),遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,7^表示第1-Ι個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致;
[0093]直線確定模塊604,用于確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線;
[0094]判斷模塊605,用于判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù);
[0095]結(jié)果確定模塊606,用于在判斷模塊605的判斷結(jié)果為是時(shí),判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部,在檢測(cè)模塊602的判斷結(jié)果為是時(shí),或者在所述判斷模塊605的判斷結(jié)果為否時(shí),判定所述測(cè)試點(diǎn)在所述多邊形外部。
[0096]在其中一個(gè)實(shí)施例中,如圖9所示,遍歷模塊603包括:
[0097]第一判斷單元701,用于在遍歷開始時(shí)或者所述第一更新單元有更新結(jié)果時(shí),判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零,
[0098]記錄單元702,用于在所述第一判斷單元的判定結(jié)果為是時(shí),記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn);
[0099]更新單元703,用于在所述記錄單元完成對(duì)當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)記錄后,將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),或者在所述第一判斷單元的的判定結(jié)果為否時(shí),將當(dāng)前端點(diǎn)對(duì)應(yīng)的下一端點(diǎn)作為新的當(dāng)前端點(diǎn);
[0100]集合確定單元704,用于在遍歷完各所述端點(diǎn)的Y坐標(biāo)值后,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。
[0101]在其中一個(gè)實(shí)施例中,如圖10所示,遍歷模塊603還可以包括第二判斷單元705和第三判斷單元706;
[0102]第二判斷單元705,用于在記錄單元702完成對(duì)當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)記錄后,判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn)或者倒數(shù)第二個(gè)需要被遍歷的端點(diǎn);
[0?03]第三判斷單元706,用于在第一判斷單元701的判定結(jié)果為否時(shí),判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn);
[0104]記錄單元702還用于在第二判斷單元705的判定結(jié)果為當(dāng)前端點(diǎn)是倒數(shù)第二個(gè)需要被遍歷的端點(diǎn)時(shí),記錄當(dāng)前端點(diǎn)的下一個(gè)端點(diǎn);
[0105]更新單元703在第三判斷單元706的判斷結(jié)果為否時(shí),將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),或者在所述第二判斷單元705的判斷結(jié)果為當(dāng)前端點(diǎn)不是最后一個(gè)需要被遍歷的端點(diǎn)且不是第二個(gè)需要被遍歷的端點(diǎn)時(shí),將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn);
[0106]集合確定單元704,用于在第二判斷單元705的判定結(jié)果或者第三判斷單元706的判定結(jié)果為當(dāng)前端點(diǎn)是最后一個(gè)需要被遍歷的端點(diǎn)時(shí),或者在記錄單元702完成對(duì)當(dāng)前端點(diǎn)的下一個(gè)端點(diǎn)記錄后,確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。
[0107]在其中一個(gè)實(shí)施例中,如圖11所示,檢測(cè)模塊602可以包括:
[0108]第一處理單元801,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù);
[0109]第一檢測(cè)單元802,用于根據(jù)各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù)檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)。
[0110]在其中一個(gè)實(shí)施例中,如圖12所示,檢測(cè)模塊602可以包括:
[0111]第二處理單元803,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)所在象限:
[0112]第二檢測(cè)單元804,用于根據(jù)各所述端點(diǎn)所在象限檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)。
[0113]本實(shí)施例提供的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),需要指出的是:以上對(duì)于點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng)的描述,與上述點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法的描述是類似的,并且具有上述點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法的有益效果,為節(jié)約篇幅,不再贅述;因此,以上對(duì)本發(fā)明實(shí)施例提供的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng)中未披露的技術(shù)細(xì)節(jié),請(qǐng)參照上述提供的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法的描述。
[0114]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,如:多個(gè)模塊或單元可以結(jié)合,或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過(guò)一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機(jī)械的或其它形式的。
[0115]上述作為分離部件說(shuō)明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元,即可以位于一個(gè)地方,也可以分布到多個(gè)網(wǎng)絡(luò)單元上;可以根據(jù)實(shí)際的需要選擇其中的部分或全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0116]另外,在本發(fā)明各實(shí)施例中的各功能模塊或單元可以全部集成在一個(gè)處理模塊或單元中,也可以是各單元分別單獨(dú)作為一個(gè)單元,也可以兩個(gè)或兩個(gè)以上模塊或單元集成在一個(gè)模塊或單元中;上述集成的模塊或單元元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0117]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、只讀存儲(chǔ)器(R0M,Read_0nly Memory)、隨機(jī)存取存儲(chǔ)器(RAM ,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0118]或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分。而前述的存儲(chǔ)介質(zhì)包括:移動(dòng)存儲(chǔ)設(shè)備、R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0119]以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說(shuō)明書記載的范圍。
[0120]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,其特征在于,包括: 以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值; 根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè); 若各所述端點(diǎn)不均在所述坐標(biāo)X軸的同一側(cè),且各所述端點(diǎn)不均在所述Y坐標(biāo)軸的同一偵Ij,則遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,yH表示第1-Ι個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致; 確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線; 判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù); 若為奇數(shù),則判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部; 若為偶數(shù),或者各所述端點(diǎn)均在所述X坐標(biāo)軸的同一側(cè),或者各所述端點(diǎn)均在所述Y坐標(biāo)軸的同一側(cè),則判定所述測(cè)試點(diǎn)在所述多邊形外部。2.根據(jù)權(quán)利要求1所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,其特征在于,所述遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合包括: 判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零;若是,則記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn),將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),返回所述判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零的步驟; 若否,則將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),返回判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零的步驟; 在遍歷完各所述端點(diǎn)的Y坐標(biāo)值后,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。3.根據(jù)權(quán)利要求2所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,其特征在于,所述遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合還包括: 在記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)后,判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn)或者倒數(shù)第二個(gè)需要被遍歷的端點(diǎn),若判定當(dāng)前端點(diǎn)是最后一個(gè)需要被遍歷的端點(diǎn),則確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,若判定當(dāng)前端點(diǎn)是倒數(shù)第二個(gè)需要被遍歷的端點(diǎn),則記錄當(dāng)前端點(diǎn)對(duì)應(yīng)的下一端點(diǎn),并確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,若判定當(dāng)前端點(diǎn)不是最后一個(gè)需要被遍歷的端點(diǎn)且不是第二個(gè)需要被遍歷的端點(diǎn),則將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),返回判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零的步驟; 在判定當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的乘積不小于零后,判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn),若是,則確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,若否,則將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),返回判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零的步驟。4.根據(jù)權(quán)利要求1所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,其特征在于,所述根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)包括: 根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù); 根據(jù)各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù)檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)。5.根據(jù)權(quán)利要求1所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)方法,其特征在于,所述根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)包括: 根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)所在象限; 根據(jù)各所述端點(diǎn)所在象限檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)。6.一種點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),其特征在于,包括: 坐標(biāo)獲取模塊,用于以測(cè)試點(diǎn)為XY直角坐標(biāo)系的原點(diǎn),獲取多邊形的各端點(diǎn)在所述XY直角坐標(biāo)系中的坐標(biāo)值; 檢測(cè)模塊,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè); 遍歷模塊,用于在所述檢測(cè)模塊的檢測(cè)結(jié)果為否時(shí),遍歷各所述端點(diǎn)的Y坐標(biāo)值,獲取滿足yi.y1-1<0的端點(diǎn)形成的新點(diǎn)集合,其中,yi表示第i個(gè)端點(diǎn)的Y坐標(biāo)值,y1-ι表示第i_l個(gè)端點(diǎn)的Y坐標(biāo)值,所述新點(diǎn)集合中各點(diǎn)的先后順序與對(duì)應(yīng)的端點(diǎn)的先后順序一致; 直線確定模塊,用于確定所述新點(diǎn)集合中各連續(xù)兩點(diǎn)和首尾兩點(diǎn)對(duì)應(yīng)的直線; 判斷模塊,用于判斷各所述直線與X坐標(biāo)軸的正半軸的交點(diǎn)數(shù)是否為奇數(shù); 結(jié)果確定模塊,用于在所述判斷模塊的判斷結(jié)果為是時(shí),判定所述測(cè)試點(diǎn)在所述多邊形內(nèi)部,在所述檢測(cè)模塊的判斷結(jié)果為是時(shí),或者在所述判斷模塊的判斷結(jié)果為否時(shí),判定所述測(cè)試點(diǎn)在所述多邊形外部。7.根據(jù)權(quán)利要求6所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),其特征在于,所述遍歷模塊包括: 第一判斷單元,用于在遍歷開始時(shí)或者所述第一更新單元有更新結(jié)果時(shí),判斷當(dāng)前端點(diǎn)的Y坐標(biāo)值與當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)的Y坐標(biāo)值的乘積是否小于零, 記錄單元,用于在所述第一判斷單元的判定結(jié)果為是時(shí),記錄當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn); 更新單元,用于在所述記錄單元完成對(duì)當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)記錄后,將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端點(diǎn),或者在所述第一判斷單元的的判定結(jié)果為否時(shí),將當(dāng)前端點(diǎn)對(duì)應(yīng)的下一端點(diǎn)作為新的當(dāng)前端點(diǎn); 集合確定單元,用于在遍歷完各所述端點(diǎn)的Y坐標(biāo)值后,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。8.根據(jù)權(quán)利要求7所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),其特征在于,所述遍歷模塊包括還包括第二判斷單元和第三判斷單元; 所述第二判斷單元,用于在所述記錄單元完成對(duì)當(dāng)前端點(diǎn)和當(dāng)前端點(diǎn)對(duì)應(yīng)的上一端點(diǎn)記錄后,判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn)或者倒數(shù)第二個(gè)需要被遍歷的端點(diǎn); 所述第三判斷單元,用于在所述第一判斷單元的的判定結(jié)果為否后,判斷當(dāng)前端點(diǎn)是否是所述多邊形的最后一個(gè)需要被遍歷的端點(diǎn); 所述記錄單元還用于在所述第二判斷單元的判定結(jié)果為當(dāng)前端點(diǎn)是倒數(shù)第二個(gè)需要被遍歷的端點(diǎn)時(shí),記錄當(dāng)前端點(diǎn)的下一個(gè)端點(diǎn); 所述更新單元在所述第三判斷單元的判斷結(jié)果為否時(shí),將當(dāng)前端點(diǎn)對(duì)應(yīng)的后一端點(diǎn)作為新的當(dāng)前端點(diǎn),或者在所述第二判斷單元的判斷結(jié)果為當(dāng)前端點(diǎn)不是最后一個(gè)需要被遍歷的端點(diǎn)且不是第二個(gè)需要被遍歷的端點(diǎn)時(shí),將當(dāng)前端點(diǎn)后的第二個(gè)端點(diǎn)作為新的當(dāng)前端占.V , 所述集合確定單元,用于在所述第二判斷單元的判定結(jié)果或者所述第三判斷單元的判定結(jié)果為當(dāng)前端點(diǎn)是最后一個(gè)需要被遍歷的端點(diǎn)時(shí)后,或者在所述記錄單元完成對(duì)當(dāng)前端點(diǎn)的下一個(gè)端點(diǎn)記錄后,確定遍歷完各所述端點(diǎn)的Y坐標(biāo)值,將所記錄的端點(diǎn)的集合確定為所述新點(diǎn)集合。9.根據(jù)權(quán)利要求6所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),其特征在于,所述檢測(cè)模塊包括: 第一處理單元,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù); 第一檢測(cè)單元,用于根據(jù)各所述端點(diǎn)的X坐標(biāo)值和Y坐標(biāo)值的正負(fù)檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)ο10.根據(jù)權(quán)利要求6所述的點(diǎn)對(duì)多邊形方位關(guān)系的檢測(cè)系統(tǒng),其特征在于,所述檢測(cè)模塊包括: 第二處理單元,用于根據(jù)各所述端點(diǎn)的坐標(biāo)值確定各所述端點(diǎn)所在象限; 第二檢測(cè)單元,用于根據(jù)各所述端點(diǎn)所在象限檢測(cè)各所述端點(diǎn)是否均在所述XY直角坐標(biāo)系的X坐標(biāo)軸或者Y坐標(biāo)軸的同一側(cè)。
【文檔編號(hào)】G06T7/40GK105869188SQ201610255396
【公開日】2016年8月17日
【申請(qǐng)日】2016年4月22日
【發(fā)明人】呂騰威, 李良, 陳彥明, 江榮鈿, 張立群, 李小明, 胡飛輝
【申請(qǐng)人】廣州日濱科技發(fā)展有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1