欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法

文檔序號:6620036閱讀:1243來源:國知局
判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法
【專利摘要】本發(fā)明公開了一種判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法,屬于一種運用方位檢測原理推斷包容特性的方法,即運用點與有向線段的左右方位關(guān)系直接推斷點與多邊形的內(nèi)外關(guān)系。本發(fā)明首先尋找測試點到多邊形邊界的最近點和最近邊,然后根據(jù)測試點到最近點的距離和用戶設(shè)定的邊界寬度判斷測試點是否在多邊形邊界上;如果不在邊界上,直接利用測試點與有向多邊形最近邊的左右關(guān)系推斷出測試點與多邊形的內(nèi)外關(guān)系。本發(fā)明采用方位法統(tǒng)一檢測點對有向凸多邊形和凹多邊形的包容特性,并且能檢測點在多邊形邊界上這種奇異情形,具有魯棒性好的特點。
【專利說明】判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方 法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計算機(jī)圖形學(xué)、計算幾何和地理信息系統(tǒng)【技術(shù)領(lǐng)域】,尤其涉及一種判 斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法。本發(fā)明方法可應(yīng)用于計算機(jī)圖 形學(xué)軟件,如AutoCAD平面制圖,用于檢測用戶鼠標(biāo)所選定的最小區(qū)域或區(qū)域邊界線;本方 法根據(jù)航天飛船的著陸點和多邊形表示的電子地圖,可自動檢測著陸點所在的最小著陸區(qū) 域。

【背景技術(shù)】
[0002] 計算機(jī)圖形學(xué)、計算幾何和地理信息系統(tǒng)等應(yīng)用經(jīng)常需要檢測點是否在多邊形的 內(nèi)部、外部或邊界上,比如電子地圖需要檢測并識別用戶鼠標(biāo)單擊的地區(qū)或城市,這種測試 稱為點對多邊形的包容性測試。目前,對于凸多邊形一般采用方位法,即通過點與多邊形有 向邊的左右關(guān)系來判定點與多邊形的內(nèi)外關(guān)系;對于凹多邊形以及任意多邊形,一般采用 射線法,即通過計算測試點引出的射線穿越多邊形邊界的次數(shù)來判定內(nèi)外關(guān)系?,F(xiàn)有方法 沒有把點在邊界上和內(nèi)外關(guān)系的判定統(tǒng)一起來,而且處理奇異情形的魯棒性差,即射線穿 越多邊形的端點或者射線穿越與其平行的多邊形邊時可能出現(xiàn)誤判。
[0003] 在計算機(jī)圖形學(xué)和計算幾何的應(yīng)用中,通常對魯棒性要求較高、需要處理點在多 邊形邊界上這種奇異情形,如果不在邊界上再計算其包容特性;同時,地理信息系統(tǒng)中的地 圖通常由許多有向多邊形表示的區(qū)域組成,區(qū)域邊界凹凸不平且其表示邊的長度不一,由 此對包容性測試的魯棒性要求較高。這些應(yīng)用都需要一種能統(tǒng)一判斷點是否在邊界上的包 容性測試方法,需要一種能統(tǒng)一采用方位法原理計算凹和凸多邊形包容特性的測試方法。


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

[0004] 本發(fā)明實施例的目的在于提供一種利用點與有向邊的方位關(guān)系檢測點對凸多邊 形和凹多邊形包容性的方法,旨在增強(qiáng)包容性測試的魯棒性的基礎(chǔ)上,實現(xiàn)兩個統(tǒng)一:統(tǒng)一 利用方位法檢測凸多邊形和凹多邊形的包容性;統(tǒng)一檢測點在多邊形內(nèi)部、外部或邊界上 三種情形。
[0005] 本發(fā)明實施例首先計算測試點到多邊形邊界的最近距離和最近邊,然后利用測試 點與最近邊的方位關(guān)系推理得出測試點與多邊形的內(nèi)外關(guān)系。這種利用方位檢測原理的點 對凸多邊形和凹多邊形的包容性測試方法包括以下步驟:
[0006] 步驟一,計算測試點到多邊形各條邊的距離,記錄最短距離和該距離所對應(yīng)的最 近邊;
[0007] 步驟二,比較最短距離和用戶指定的多邊形邊界寬度的大小關(guān)系,當(dāng)最短距離小 于邊界寬度時,判斷測試點在多邊形的邊界上,結(jié)束測試;
[0008] 步驟三,計算測試點在最近邊上的最近點,當(dāng)最近點與最近邊兩個端點的距離都 大于邊界寬度時,計算測試點與最近邊的左右關(guān)系,利用方位關(guān)系到內(nèi)外關(guān)系的推理規(guī)則 確定包容性,結(jié)束測試;
[0009] 步驟四,選擇與最近點距離最小的端點相連接的兩條邊,分別計算測試點與兩條 邊的左右關(guān)系,利用方位關(guān)系到內(nèi)外關(guān)系的推理規(guī)則確定包容性,結(jié)束測試。
[0010] 其中,確定測試點與有向邊的左右關(guān)系的計算方法為:當(dāng)測試點和有向邊組成的 有向三角形面積大于零時,測試點在有向邊的左邊;否則,測試點在有向邊的右邊。
[0011] 其中,方位關(guān)系到內(nèi)外關(guān)系的推理規(guī)則為:
[0012] 1.多邊形及其邊的表示為逆時針
[0013] (1)測試點在最近邊上的最近點不為端點
[0014] 當(dāng)測試點在最近邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在最近邊的右邊,測 試點在多邊形外部。
[0015] (2)測試點在最近邊上的最近點為端點
[0016] 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在連 接最近點的兩條邊的右邊,測試點在多邊形的外部;當(dāng)測試點與連接最近點的兩條邊的左 右關(guān)系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的外部,否 則在內(nèi)部。
[0017] 2.多邊形及其邊的表示為順時針
[0018] (1)測試點在最近邊上的最近點不為端點
[0019] 當(dāng)測試點在最近邊的左邊,測試點在多邊形的外部;當(dāng)測試點在最近邊的右邊,測 試點在多邊形內(nèi)部。
[0020] (2)測試點在最近邊上的最近點為端點
[0021] 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的外部;當(dāng)測試點在連 接最近點的兩條邊的右邊,測試點在多邊形的內(nèi)部;當(dāng)測試點與連接最近點的兩條邊的左 右關(guān)系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的內(nèi)部,否 則在外部。
[0022] 本發(fā)明建立適用于任意多邊形的方位關(guān)系到內(nèi)外關(guān)系的推理規(guī)則,進(jìn)而把點對凸 多邊形包容性測試所采用的方位法推廣到任意多邊形,在保留原有凸多邊形包容性測試的 魯棒性的基礎(chǔ)上,實現(xiàn)任意多邊形包容性測試的兩個統(tǒng)一:統(tǒng)一利用方位法檢測凸多邊形 和凹多邊形的包容性;統(tǒng)一檢測點在多邊形內(nèi)部、外部或邊界上三種情形。本方法不但能夠 判斷點是否在某有向多邊形表示區(qū)域的內(nèi)部、外部或邊界上,而且能計算該點與區(qū)域邊界 的最短距離、最近邊以及與最近邊的方位關(guān)系。
[0023] 應(yīng)用本發(fā)明方法到計算機(jī)圖形學(xué)的平面制圖軟件,可根據(jù)用戶鼠標(biāo)選定位置與制 圖邊線的最短距離判斷鼠標(biāo)選定點是否在邊線上,判定尺度能根據(jù)用戶設(shè)定的邊線寬度來 確定,具有一致性好的特點;當(dāng)選定點不在最近邊線上,直接利用選定點與最近邊的左右關(guān) 系推斷選定點與最近邊所在多邊形區(qū)域的內(nèi)外關(guān)系,包容性測試具有計算量小且魯棒性好 的特點。

【專利附圖】

【附圖說明】
[0024] 圖1是本發(fā)明實施例提供的測試點和逆時針方向的有向多邊形示意圖;
[0025] 圖2是本發(fā)明實施例提供的利用方位關(guān)系檢測點對逆時針凸和凹多邊形包容性 測試的流程圖。

【具體實施方式】
[0026] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合實施例,對本發(fā)明 進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于 限定本發(fā)明。
[0027] 下面結(jié)合附圖及具體實施例對本發(fā)明的應(yīng)用原理作進(jìn)一步描述。
[0028] 如圖1所示,本發(fā)明實施例的利用方位關(guān)系檢測點對多邊形包容性測試方法適用 于任意有向多邊形。
[0029] 如圖2所示,本發(fā)明實施例的判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性 測試方法包括以下步驟:
[0030] S101 :已知:測試點,逆時針方向的有向多邊形,多邊形邊界寬度;
[0031] S102 :尋找多邊形中與測試點距離最近的邊;
[0032] S103 :然后比較測試點與最近邊的距離是否小于邊界寬度,當(dāng)最短距離小于邊界 寬度,判定測試點在邊界上,測試結(jié)束;若最短距離大于邊界寬度,則執(zhí)行下一步;
[0033] S104 :測試點是否在最近邊的左邊,當(dāng)測試點在逆時針方向最近邊的左邊,判定測 試點在多邊形內(nèi)部,否則判定在多邊形外部,測試結(jié)束。
[0034] 本發(fā)明的具體方法為:
[0035] 本發(fā)明統(tǒng)一用方位法檢測點對有向凸多邊形和凹多邊形的包容特性。該包容性測 試方法包括以下步驟:
[0036] 步驟一,計算測試點到多邊形各條邊的距離,記錄最短距離和該距離所對應(yīng)的最 近邊;
[0037] 步驟二,比較最短距離和用戶指定的多邊形邊界寬度的大小關(guān)系,當(dāng)最短距離小 于邊界寬度時,判斷測試點在多邊形的邊界上,結(jié)束測試;
[0038] 步驟三,計算測試點在最近邊上的最近點,當(dāng)最近點與最近邊兩個端點的距離都 大于邊界寬度時,計算測試點與最近邊的左右關(guān)系,利用推理規(guī)則確定點與多邊形的內(nèi)外 關(guān)系,結(jié)束測試;
[0039] 步驟四,選擇與最近點距離最小的端點相連接的兩條邊,分別計算測試點與兩條 邊的左右關(guān)系,利用推理規(guī)則確定點與多邊形的內(nèi)外關(guān)系,結(jié)束測試。
[0040] 本發(fā)明利用點與有向最近邊的左右關(guān)系分情形推理點與多邊形的內(nèi)外關(guān)系。該規(guī) 則包括如下情形:
[0041] 1、多邊形及其邊的表示為逆時針
[0042] (1)測試點在最近邊上的最近點不為端點
[0043] 當(dāng)測試點在最近邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在最近邊的右邊,測 試點在多邊形外部。
[0044] (2)測試點在最近邊上的最近點為端點
[0045] 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在連 接最近點的兩條邊的右邊,測試點在多邊形的外部;當(dāng)測試點與連接最近點的兩條邊的左 右關(guān)系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的外部,否 則在內(nèi)部。
[0046] 2、多邊形及其邊的表示為順時針
[0047] (1)測試點在最近邊上的最近點不為端點
[0048] 當(dāng)測試點在最近邊的左邊,測試點在多邊形的外部;當(dāng)測試點在最近邊的右邊,測 試點在多邊形內(nèi)部。
[0049] (2)測試點在最近邊上的最近點為端點
[0050] 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的外部;當(dāng)測試點在連 接最近點的兩條邊的右邊,測試點在多邊形的內(nèi)部;當(dāng)測試點與連接最近點的兩條邊的左 右關(guān)系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的內(nèi)部,否 則在外部。
[0051] 其中,確定測試點與有向邊的左右關(guān)系的規(guī)則為:當(dāng)測試點和有向邊組成的有向 三角形面積大于零時,測試點在有向邊的左邊;否則,測試點在有向邊的右邊。
[0052] 利用點到多邊形邊界的最近距離和用戶指定的多邊形邊界寬度檢測點在多邊形 邊界上這種奇異情形、提高點對多邊形包容性檢測的魯棒性;如權(quán)利要求2所述的利用點 與有向最近邊的左右關(guān)系推理點與多邊形的內(nèi)外關(guān)系,其特征在于利用左右關(guān)系分類確定 最近點為端點這種奇異情形、提高點對凹多邊形包容性檢測的魯棒性。在增強(qiáng)包容性測試 的魯棒性的基礎(chǔ)上,本方法的特征表現(xiàn)為兩個統(tǒng)一:統(tǒng)一利用方位法檢測凸多邊形和凹多 邊形的包容性;統(tǒng)一檢測點在多邊形內(nèi)部、外部或邊界上三種情形。
[0053] 本發(fā)明的點對多邊形的包容性測試(即判斷點在多邊形的內(nèi)部、外部或邊界上) 是計算機(jī)圖形學(xué)、計算幾何和地理信息系統(tǒng)等應(yīng)用的基本測試工具。比如,可用于檢測用戶 鼠標(biāo)點擊地圖中的某個封閉區(qū)域并標(biāo)識出不同顏色,解決了針對浮點數(shù)的計算和表示誤差 的問題。
[0054] 以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1. 一種采用方位法計算點在凸和凹多邊形內(nèi)部、外部或邊界上的包容性測試方法,其 特征在于,統(tǒng)一用點與有向凸和凹多邊形最近邊的距離與左右方位關(guān)系推斷點與多邊形區(qū) 域的內(nèi)外關(guān)系;具體包括以下步驟: 步驟一,計算測試點到多邊形各條邊的距離,記錄最短距離和該距離所對應(yīng)的最近 邊; 步驟二,比較最短距離和用戶指定的多邊形邊界寬度的大小關(guān)系,當(dāng)最短距離小于邊 界寬度時,判斷測試點在多邊形的邊界上,結(jié)束測試; 步驟三,計算測試點在最近邊上的最近點,當(dāng)最近點不為最近邊的端點時,即最近點與 最近邊兩個端點的距離都大于邊界寬度,計算測試點與最近邊的左右關(guān)系,利用推理規(guī)則 確定點與多邊形的內(nèi)外關(guān)系,結(jié)束測試; 步驟四,選擇與最近點距離最小的端點相連接的兩條邊,分別計算測試點與兩條邊的 左右關(guān)系,利用推理規(guī)則確定點與多邊形的內(nèi)外關(guān)系,結(jié)束測試。
2. 如權(quán)利要求1所述的判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法, 其特征在于,利用點與有向最近邊的左右關(guān)系分情形推理點與多邊形的內(nèi)外關(guān)系,包括如 下情形: A. 多邊形及其邊的表示為逆時針 (1) 測試點在最近邊上的最近點不為端點 當(dāng)測試點在最近邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在最近邊的右邊,測試點 在多邊形外部; (2) 測試點在最近邊上的最近點為端點 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的內(nèi)部;當(dāng)測試點在連接最 近點的兩條邊的右邊,測試點在多邊形的外部;當(dāng)測試點與連接最近點的兩條邊的左右關(guān) 系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的外部,否則在 內(nèi)部; B. 多邊形及其邊的表示為順時針 (1) 測試點在最近邊上的最近點不為端點 當(dāng)測試點在最近邊的左邊,測試點在多邊形的外部;當(dāng)測試點在最近邊的右邊,測試點 在多邊形內(nèi)部; (2) 測試點在最近邊上的最近點為端點 當(dāng)測試點在連接最近點的兩條邊的左邊,測試點在多邊形的外部;當(dāng)測試點在連接最 近點的兩條邊的右邊,測試點在多邊形的內(nèi)部;當(dāng)測試點與連接最近點的兩條邊的左右關(guān) 系不一致時,多邊形在最近端點的兩條邊的前進(jìn)方向為左,測試點在多邊形的內(nèi)部,否則在 外部。
3. 如權(quán)利要求2所述的判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法, 其特征在于,確定測試點與有向邊的左右關(guān)系的方法為:當(dāng)測試點和有向邊組成的有向三 角形面積大于零時,測試點在有向邊的左邊;否則,測試點在有向邊的右邊。
4. 如權(quán)利要求1所述的判斷點在多邊形區(qū)域內(nèi)部、外部或邊界上的包容性測試方法, 其特征在于,把凸多邊形包容性測試所采用的方位法推廣到凹多邊形,并利用測試點與多 邊形最近邊的距離和左右方位推理得出點在多邊形內(nèi)部、外部或邊界上。
【文檔編號】G06T7/60GK104123737SQ201410334054
【公開日】2014年10月29日 申請日期:2014年7月15日 優(yōu)先權(quán)日:2014年7月15日
【發(fā)明者】沈穎, 楊勝 申請人:沈穎, 楊勝
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黑河市| 万山特区| 芷江| 阿勒泰市| 中宁县| 天峻县| 秭归县| 招远市| 大悟县| 公主岭市| 诸城市| 新昌县| 海丰县| 五华县| 阿拉善盟| 德惠市| 丰原市| 若尔盖县| 紫阳县| 鄢陵县| 南投市| 江城| 海安县| 祁阳县| 宣汉县| 娄烦县| 南康市| 孟村| 中宁县| 华容县| 奉新县| 闵行区| 蛟河市| 富民县| 临沂市| 波密县| 湘阴县| 武城县| 樟树市| 晋州市| 昭苏县|