亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法與流程

文檔序號:12663635閱讀:606來源:國知局
一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法與流程

本技術(shù)方案涉及一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法。



背景技術(shù):

為了能在移動(dòng)設(shè)備中以傳統(tǒng)讀報(bào)的習(xí)慣閱讀報(bào)紙,需要將一塊圖片區(qū)域?qū)?yīng)到具體的報(bào)道內(nèi)容,因此就產(chǎn)生了如何識別用戶點(diǎn)擊的圖片區(qū)域的問題。目前常規(guī)的處理辦法存在如下缺陷:首先是將圖片區(qū)域通過標(biāo)準(zhǔn)的4點(diǎn)劃分為多個(gè)標(biāo)準(zhǔn)的矩形,若頁面排版不是規(guī)矩的矩形,那么對圖片的劃分就與實(shí)際不相符,會(huì)導(dǎo)致用戶點(diǎn)擊文章A的區(qū)域打開文章B的情況。其次是實(shí)現(xiàn)了對不規(guī)則區(qū)域的標(biāo)記,但是會(huì)出現(xiàn)用戶點(diǎn)擊某個(gè)位置時(shí)激活兩個(gè)區(qū)域,不能準(zhǔn)確識別用戶的意圖。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法,運(yùn)用此方法能將圖片區(qū)域劃分成多個(gè)不規(guī)則的形狀,并可有效的識別用戶的點(diǎn)擊區(qū)域。

實(shí)現(xiàn)本發(fā)明目的的技術(shù)方案是:一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法,其特征在于:包括以下步驟:

1.1.將不規(guī)則多邊形的所有坐標(biāo)點(diǎn)集合作為一個(gè)數(shù)組輸入進(jìn)行計(jì)算;

1.2.將觸點(diǎn)坐標(biāo)作為一個(gè)數(shù)組輸入進(jìn)行計(jì)算;

1.3.判斷點(diǎn)(a,b)與點(diǎn)(c,d)連線,是否與點(diǎn)(0,y)與觸點(diǎn)坐標(biāo)(x,y)連線有交點(diǎn),并返回布爾值供后續(xù)計(jì)算;

1.4.將觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù),如果步驟1.3中返回的布爾值為真,則將x軸焦點(diǎn)數(shù)計(jì)數(shù)+1;

1.5.判斷點(diǎn)(a,b)與點(diǎn)(c,d)連線,是否與點(diǎn)(x,0)與觸點(diǎn)坐標(biāo)(x,y)連線有交點(diǎn),并返回布爾值供后續(xù)計(jì)算;

1.6.將觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù),如果步驟1.5中返回的布爾值為真,則將y軸焦點(diǎn)數(shù)計(jì)數(shù)+1;

1.7.判斷是否還有未計(jì)算的點(diǎn),將步驟1.1中輸入的坐標(biāo)集和數(shù)組減去步驟1.3與步驟1.4中已經(jīng)計(jì)算了的坐標(biāo)點(diǎn),若得出的值大于0則還有未計(jì)算的點(diǎn);

1.8.若還有未參與計(jì)算的點(diǎn),則將步驟1.3中后2個(gè)數(shù)與步驟1.7中剩余的點(diǎn)取前2個(gè)數(shù),替換為abcd,代入步驟1.3至1.7中循環(huán);

1.9.若全部點(diǎn)都參與了計(jì)算,則將最后2個(gè)點(diǎn)(i,j)與點(diǎn)(a,b)替換為abcd代入步驟1.3至1.6中計(jì)算;

1.10.判斷x軸焦點(diǎn)數(shù)與y軸焦點(diǎn)數(shù)是否都是奇數(shù):判斷步驟1.4和步驟1.6的計(jì)數(shù)值是否都為奇數(shù),并輸出布爾值;

1.11.若步驟1.10輸出的布爾值為真,則得到結(jié)論觸點(diǎn)在多邊形內(nèi)部,反之則得到結(jié)論觸點(diǎn)在多邊形外部。

本發(fā)明的優(yōu)點(diǎn)在于:1.能將圖片區(qū)域劃分成多個(gè)不規(guī)則的形狀,并可有效的識別用戶的點(diǎn)擊區(qū)域。2.點(diǎn)擊的位置歸屬識別準(zhǔn)確。技術(shù)實(shí)現(xiàn)未依賴第三方工具,完全基于最基本的數(shù)學(xué)定理計(jì)算。3.語法簡單。因?yàn)閮H使用了大于、小于的比較及短路與和短路或計(jì)算,能夠方便快速到移植到各計(jì)算機(jī)語言平臺(tái)。

附圖說明

圖1是本發(fā)明的邏輯流程圖;

圖2是實(shí)施例一的附圖;

圖3是實(shí)施例二的附圖。

具體實(shí)施方式

本發(fā)明涉及一種判斷觸點(diǎn)是否在不規(guī)則多邊形內(nèi)部的方法,其特征在于:包括以下步驟:

1.1.將不規(guī)則多邊形的所有坐標(biāo)點(diǎn)集合作為一個(gè)數(shù)組輸入進(jìn)行計(jì)算;

1.2.將觸點(diǎn)坐標(biāo)作為一個(gè)數(shù)組輸入進(jìn)行計(jì)算;

1.3.判斷點(diǎn)(a,b)與點(diǎn)(c,d)連線,是否與點(diǎn)(0,y)與觸點(diǎn)坐標(biāo)(x,y)連線有交點(diǎn),并返回布爾值供后續(xù)計(jì)算;

1.4.將觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù),如果步驟1.3中返回的布爾值為真,則將x軸焦點(diǎn)數(shù)計(jì)數(shù)+1;

1.5.判斷點(diǎn)(a,b)與點(diǎn)(c,d)連線,是否與點(diǎn)(x,0)與觸點(diǎn)坐標(biāo)(x,y)連線有交點(diǎn),并返回布爾值供后續(xù)計(jì)算;

1.6.將觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù),如果步驟1.5中返回的布爾值為真,則將y軸焦點(diǎn)數(shù)計(jì)數(shù)+1;

1.7.判斷是否還有未計(jì)算的點(diǎn),將步驟1.1中輸入的坐標(biāo)集和數(shù)組減去步驟1.3與步驟1.4中已經(jīng)計(jì)算了的坐標(biāo)點(diǎn),若得出的值大于0則還有未計(jì)算的點(diǎn);

1.8.若還有未參與計(jì)算的點(diǎn),則將步驟1.3中后2個(gè)數(shù)與步驟1.7中剩余的點(diǎn)取前2個(gè)數(shù),替換為abcd,代入步驟1.3至1.7中循環(huán);

1.9.若全部點(diǎn)都參與了計(jì)算,則將最后2個(gè)點(diǎn)(i,j)與點(diǎn)(a,b)替換為abcd代入步驟1.3至1.6中計(jì)算;

1.10.判斷x軸焦點(diǎn)數(shù)與y軸焦點(diǎn)數(shù)是否都是奇數(shù):判斷步驟1.4和步驟1.6的計(jì)數(shù)值是否都為奇數(shù),并輸出布爾值;

1.11.若步驟1.10輸出的布爾值為真,則得到結(jié)論觸點(diǎn)在多邊形內(nèi)部,反之則得到結(jié)論觸點(diǎn)在多邊形外部。

實(shí)施例一、

A、如圖2,輸入不規(guī)則多邊形順時(shí)針坐標(biāo)集合(1,5,3,5,3,3,4,3,4,1,1,1)

B、輸入觸點(diǎn)的坐標(biāo):(2,2);

C、判斷點(diǎn)(1,5)與點(diǎn)(3,5)的連線,是否與點(diǎn)(0,2)與觸點(diǎn)坐標(biāo)(2,2)連線有交點(diǎn),(1>2&&2>3&&2>5&&2>5)||(1<2&&2<3&&2>5&&2>5)=false ,故無交點(diǎn)。

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、點(diǎn)(1,5)與點(diǎn)(3,5)連線,是否與點(diǎn)(2,0)與觸點(diǎn)坐標(biāo)(2,2)連線有交點(diǎn),(5>2&&2>5&&2>1&&2>3)||(5<2&&2<5&&2>1&&2>3)=false ,故無交點(diǎn)

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算4個(gè)點(diǎn),還有8個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(3,5,3,3),代入步驟C、D、E、F中循環(huán)

C、(3>2&&2>3&&2>5&&2>3)||(3<2&&2<3&&2>5&&2>3)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(5>2&&2>3&&2>3&&2>3)||(5<2&&2<3&&2>3&&2>3)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算6個(gè)點(diǎn),還有6個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(3,3,4,3),代入步驟C、D、E、F中循環(huán):

C、(3>2&&2>4&&2>3&&2>3)||(3<2&&2<4&&2>3&&2>3)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(3>2&&2>3&&2>3&&2>4)||(3<2&&2<3&&2>3&&2>4)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算8個(gè)點(diǎn),還有4個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(4,3,4,1),代入步驟C、D、E、F中循環(huán)

C、(4>2&&2>4&&2>3&&2>1)||(4<2&&2<4&&2>3&&2>1)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(3>2&&2>1&&2>4&&2>4)||(3<2&&2<1&&2>4&&2>4)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算10個(gè)點(diǎn),還有2個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(4,1,1,1),代入步驟C、D、E、F中循環(huán)

C、(4>2&&2>1&&2>1&&2>1)||(4<2&&2<1&&2>1&&2>1)=true

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):1;

E、(1>2&&2>1&&2>4&&2>1)||(1<2&&2<1&&2>4&&2>1)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

I、最后2個(gè)點(diǎn)(1,1)與起始點(diǎn)(1,5)的連線是否被計(jì)算:在步驟G中循環(huán)剩余2個(gè)點(diǎn)或0個(gè)點(diǎn)是否與第一個(gè)坐標(biāo)進(jìn)行步驟C、D、E、F的計(jì)算;

J、將最后2個(gè)點(diǎn)(1,1)與點(diǎn)(1,5)替換為abcd進(jìn)入計(jì)算:步驟A中最后的2個(gè)點(diǎn)與為首的2個(gè)點(diǎn),一起代入步驟C、D、E、F中循環(huán)

C、(1>2&&2>1&&2>1&&2>5)||(1<2&&2<1&&2>1&&2>5)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):1;

E、(1>2&&2>5&&2>1&&2>1)||(1<2&&2<5&&2>1&&2>1)=true

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):1;

K、判斷x軸焦點(diǎn)數(shù)與y軸焦點(diǎn)數(shù)是否都是奇數(shù):判斷步驟D計(jì)數(shù)值為1和步驟F的計(jì)數(shù)值為1,都為奇數(shù),并輸出布爾值true;

L、得出結(jié)論觸點(diǎn)在多邊形內(nèi)部:K輸出的布爾值為真,則得到結(jié)論觸點(diǎn)在多邊形內(nèi)部;

實(shí)施例二、

A、如圖3,輸入不規(guī)則多邊形順時(shí)針坐標(biāo)集合(1,5,3,5,3,3,4,3,4,1,1,1)

B、輸入觸點(diǎn)的坐標(biāo):(4,5);

C、判斷點(diǎn)(1,5)與點(diǎn)(3,5)的連線,是否與點(diǎn)(0,5)與觸點(diǎn)坐標(biāo)(4,5)連線有交點(diǎn),(1>4&&4>3&&5>5&&5>5)||(1<4&&4<3&&5>5&&5>5)=false ,故無交點(diǎn)。

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、點(diǎn)(1,5)與點(diǎn)(3,5)連線,是否與點(diǎn)(4,0)與觸點(diǎn)坐標(biāo)(4,5)連線有交點(diǎn),(5>5&&5>5&&4>1&&4>3)||(5<5&&5<5&&4>1&&4>3)= false,故無交點(diǎn)

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算4個(gè)點(diǎn),還有8個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(3,5,3,3),代入步驟C、D、E、F中循環(huán)

C、(3>4&&4>3&&5>5&&5>3)||(3<4&&4<3&&5>5&&5>3)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(5>5&&5>3&&4>3&&4>3)||(5<5&&5<3&&4>3&&4>3)= false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算6個(gè)點(diǎn),還有6個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(3,3,4,3),代入步驟C、D、E、F中循環(huán):

C、(3>4&&4>4&&5>3&&5>3)||(3<4&&4<4&&5>3&&5>3)= false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(3>5&&5>3&&4>3&&4>4)||(3<5&&5<3&&4>3&&4>4)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算8個(gè)點(diǎn),還有4個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(4,3,4,1),代入步驟C、D、E、F中循環(huán)

C、(4>4&&4>4&&5>3&&5>1)||(4<4&&4<4&&5>3&&5>1)= false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(3>5&&5>1&&4>4&&4>4)||(3<5&&5<1&&4>4&&4>4)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

G、是否還有未計(jì)算的點(diǎn):一共12個(gè)點(diǎn),已計(jì)算10個(gè)點(diǎn),還有2個(gè)點(diǎn)未計(jì)算。

H、將未計(jì)算的2個(gè)數(shù)與上一步驟中后2個(gè)數(shù)替換為abcd進(jìn)入循環(huán):步驟C中后2個(gè)數(shù)與步驟G中剩余的點(diǎn)取前2個(gè)數(shù)(4,1,1,1),代入步驟C、D、E、F中循環(huán)

C、(4>4&&4>1&&5>1&&5>1)||(4<4&&4<1&&5>1&&5>1)= false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(1>5&&5>1&&4>4&&4>1)||(1<5&&5<1&&4>4&&4>1)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

I、最后2個(gè)點(diǎn)(1,1)與起始點(diǎn)(1,5)的連線是否被計(jì)算:在步驟G中循環(huán)剩余2個(gè)點(diǎn)或0個(gè)點(diǎn)是否與第一個(gè)坐標(biāo)進(jìn)行步驟C、D、E、F的計(jì)算;

J、將最后2個(gè)點(diǎn)(1,1)與點(diǎn)(1,5)替換為abcd進(jìn)入計(jì)算:步驟A中最后的2個(gè)點(diǎn)與為首的2個(gè)點(diǎn),一起代入步驟C、D、E、F中循環(huán)

C、(1>4&&4>1&&5>1&&5>5)||(1<4&&4<1&&5>1&&5>5)=false

D、觸點(diǎn)的x軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

E、(1>5&&5>5&&4>1&&4>1)||(1<5&&5<5&&4>1&&4>1)=false

F、觸點(diǎn)的y軸的平行線與每一條邊的焦點(diǎn)數(shù)計(jì)數(shù):0;

K、判斷x軸焦點(diǎn)數(shù)與y軸焦點(diǎn)數(shù)是否都是奇數(shù):判斷步驟D計(jì)數(shù)值為0和步驟F的計(jì)數(shù)值為0,都不是奇數(shù),并輸出布爾值flase;

L、得出結(jié)論觸點(diǎn)在多邊形外部:E輸出的布爾值為假,則得到結(jié)論觸點(diǎn)在多邊形外部。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1