專利名稱:一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機圖形學(xué)領(lǐng)域,特別是涉及一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法。
背景技術(shù):
目前涉及GIS方面的解決方案都會涉及到這樣的一個問題,在已經(jīng)建立好的網(wǎng)格上找出相同高程值的點,比如繪制等高線地形圖,石油勘探的油水分界線。一般來說,當(dāng)?shù)戎稻€找到后,還需要將相鄰等值線之間的區(qū)域用不同的顏色標(biāo)記出來,這樣可以相對直觀地標(biāo)識具有相同屬性的一片區(qū)域。通常的辦法是找出等值線和邊界或者斷層的交點,并且排列這些交點相對于邊界或者斷層的順序。然后遍歷這些邊界或者斷層,針對每兩個相鄰的交點按照順時針或者逆時針來向前搜索等值線-邊界,這樣交替前進,直到找到初始的出發(fā)點,表示一個閉合的區(qū)域完成。另外還需要考慮一個閉合區(qū)域內(nèi)部是否有閉合等值線的情況,一個閉合等值線內(nèi)部肯定存在填充的區(qū)域,閉合等值線填充區(qū)域相對簡單,此時可以采用遞歸的方法,找出所有內(nèi)部的等值線。《計算機工程與科學(xué)》期刊2006年第觀卷第11期66頁的文章“基于邊界點追蹤的等值線圖區(qū)域填充算法”就是采用了這種方法。此種方法的優(yōu)點是邏輯相對簡
單,容易理解?!盎谶吔琰c追蹤的等值線圖區(qū)域填充算法”的填充算法比較傳統(tǒng),緊緊依靠應(yīng)用背景采用邊界,斷層的概念,概念上不適用于其他的情形。比如抽象的交叉折線見的閉合區(qū)域。另外填充的方式使用了覆蓋式,類似于刷油漆的方式,不利于后期的針對某個填充區(qū)域的操作。因而,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個技術(shù)問題就是如何找到一種新型的適用范圍更廣的填充區(qū)域的方法。
發(fā)明內(nèi)容
本發(fā)明所要解決的一個技術(shù)問題是提供一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,該方法是一種新型的適用范圍更廣的填充區(qū)域的方法。為了解決上述問題,本發(fā)明公開了一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法, 包括初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域;通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果;針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果;依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作。優(yōu)選的,所述初始化填充區(qū)域,獲得填充區(qū)域的索引信息及數(shù)據(jù)信息的步驟,包括
依據(jù)斷層的輸入數(shù)據(jù)、邊界的輸入數(shù)據(jù)及等值線的輸入數(shù)據(jù),建立相應(yīng)的抽象線段,獲得斷層的抽象線段、邊界的抽象線段及等值線的抽象線段;建立原始線段的索引關(guān)聯(lián)、抽象線段的索引關(guān)聯(lián)、所有交點的索引關(guān)聯(lián)、所有交點所在抽象線段的索引關(guān)聯(lián)及原始線段上的位置的索引關(guān)聯(lián),獲得原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息及原始線段上的位置的索引信息;保存原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息及原始線段上的位置的索引信息;保存每個四岔路口或三岔路口的數(shù)據(jù)信息;統(tǒng)計上述索引信息及數(shù)據(jù)信息,獲得填充區(qū)域的索引信息及數(shù)據(jù)信息。優(yōu)選的,所述每個四岔路口需要進行四次搜索,獲得相應(yīng)的每個四岔路口的數(shù)據(jù) fn息;所述每個三岔路口需要進行三次搜索,獲得相應(yīng)的每個三岔路口的數(shù)據(jù)信息。優(yōu)選的,所述通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果的步驟,包括遍歷每個交點的四個或三個抽象線段,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜
索結(jié)果。優(yōu)選的,所述針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果的步驟,包括針對某個交點的某個抽象線段進行搜索;當(dāng)針對某個交點的某個抽象線段的搜索過程完成后,獲得某個交點的某個抽象線段的搜索結(jié)果;對上述某個交點的某個抽象線段的搜索結(jié)果進行標(biāo)記;將上述某個交點的某個抽象線段的搜索結(jié)果保存在數(shù)據(jù)庫中。優(yōu)選的,所述依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作的步驟,包括若搜索到的區(qū)域內(nèi)部沒有區(qū)域,則執(zhí)行停止搜索區(qū)域的指令,結(jié)束搜索過程;若搜索到的區(qū)域內(nèi)部有區(qū)域,則執(zhí)行搜索區(qū)域的操作。優(yōu)選的,所述若搜索到的區(qū)域內(nèi)部有區(qū)域,則執(zhí)行搜索區(qū)域的操作的步驟,包括若搜索到的區(qū)域內(nèi)部有區(qū)域,則采用遞歸的方式進行搜索,獲得該區(qū)域內(nèi)部的所有區(qū)域;針對獲得的該區(qū)域內(nèi)部的所有區(qū)域的任一區(qū)域內(nèi)部的區(qū)域挖去,獲得該任一區(qū)域內(nèi)部的空洞區(qū)域;接收搜索返回指令,返回搜索,作出區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果;依據(jù)區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果,執(zhí)行停止搜索或遞歸尋找區(qū)域及挖空區(qū)域的操作;至到該區(qū)域內(nèi)部沒有區(qū)域,接收停止搜索區(qū)域的指令,結(jié)束搜索過程。優(yōu)選的,所述通過每個閉合區(qū)域相對應(yīng)的折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性;
其中,所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、 每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。優(yōu)選的,所述通過每個閉合區(qū)域相對應(yīng)的折線信息,獲得相應(yīng)的每個閉合區(qū)域的屬性的步驟,包括通過每個閉合區(qū)域所擁有的抽象線段,獲得相應(yīng)的每個閉合區(qū)域的原始折線的附加信息;依據(jù)每個閉合區(qū)域的原始折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性;其中,所述每個閉合區(qū)域的原始折線的附加信息包括高程值或溫度值;所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點1、針對填充區(qū)域的尋找上,采用更加通用的基于幾何拓撲學(xué)的算法;2、針對填充區(qū)域的尋找上,相鄰區(qū)域相互獨立,更加體現(xiàn)面向?qū)ο蟮木瑁?、本發(fā)明所得到的用于表征結(jié)果區(qū)域的矢量圖,方便后期操作。4、填充區(qū)域搜索的解決方案基于幾何拓撲二維矢量圖,適用于任何基于矢量圖的區(qū)域搜索,在針對有邊界,斷層等因素的案例中,只需要記住抽象線段來自于邊界還是斷層還是等值線就行。5、本發(fā)明采用了環(huán)結(jié)構(gòu),這樣可以針對環(huán)進行后期操作,比如移動,也解決了刷漆填充方式的弊端。6、本發(fā)明中的抽象線段的概念,在邏輯理解上相比傳統(tǒng)的方法更勝一籌。7、本發(fā)明中的填充區(qū)域搜索方法能夠給更多的情況提供解決方案,基本上本解決方案是基于基礎(chǔ)理論的,只需在不同的案例下根據(jù)具體情況稍加完善就可以使用。尤其是抽象線段的封裝,可以將一些繁瑣的內(nèi)容隱藏。8、本發(fā)明引入了環(huán)的概念,在視覺上更加真實地描述物理世界,更能讓用戶接受。9、本發(fā)明充分保存了各種數(shù)據(jù),使得運算速度大大加快,而相對于現(xiàn)今的計算機配置來說,增加的內(nèi)存儲存空間基本不影響計算機的性能??傊?,本發(fā)明提供了一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,該方法是一種新型的適用范圍更廣的填充區(qū)域的方法。
圖1是本發(fā)明一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法的實施例1的步驟流程圖;圖2是本發(fā)明中的線段相交的示意圖;圖3是本發(fā)明一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法的實施例2的示意圖;圖4是本發(fā)明中的搜索及填充區(qū)域的步驟流程圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細的說明。
本發(fā)明的核心思想之一是提供了一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,包括初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域;通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果;針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果;依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作;該方法是一種新型的適用范圍更廣的填充區(qū)域的方法。參照圖1,示出了本發(fā)明一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法的實施例1 的步驟流程圖,具體可以包括步驟101、初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域。在進行初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域的步驟之前,需要準備好下面的輸入數(shù)據(jù)邊界區(qū)域(矩形邊界或者不規(guī)則多邊形),等值線數(shù)據(jù)及斷層數(shù)據(jù)。參照圖2,示出了本發(fā)明中的線段相交的示意圖。從圖2中可以看出1)根據(jù)幾何特性,,交點只有兩種情況,兩個線段相交后,是一個四岔路口(圖2A) 或者像一個三岔路口(圖2B)。2)關(guān)于斷層,斷層有兩種形態(tài),一條折線或者一條閉合折線(區(qū)域)。閉合折線內(nèi)部的區(qū)域?qū)儆跓o效區(qū)域。3)關(guān)于邊界,只有邊界內(nèi)部的區(qū)域才是有效區(qū)域。4)關(guān)于抽象線段,本發(fā)明涉及一個概念,抽象線段。如圖2C所示,3條折線相交, 兩個交點,分別是四岔路口和三岔路口,抽象后,可以得到兩個交點,6個抽象的線段,分別是a,b,c, d,e, f,圖中用不同顏色表示。其中a和e是獨立的線段,c, b,d,f是折線。5)關(guān)于抽象線段的交點。兩個線段的關(guān)系,相交(如第1點所述,有四岔路口,和三叉路口),不相交。針對一條抽象線段,這個線段的交點情況有①沒有交點②一個交點(圖2C中的a,b,c,e,f)③兩個交點(圖2C中的d)。6)如圖2D所示,一個路口肯定有三個出口(三岔路口)或者四個出口(四岔路 Π )。7)從任意一個交點的一個路口出發(fā),如圖2Ε。遇到每個交點結(jié)構(gòu),尋找下一個抽象線段時,只需要逆時針找到上一個抽像線段就行,直到遇到起始的交點,完成閉合區(qū)域的搜索,結(jié)束搜索。8)遇到圖2F中的情況,這個抽象線段只有一端是交點的,目前是直接添加上的, 保持斷層的原汁原味。也可以不加,這樣填充看起來更加漂亮。為了使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明,在本發(fā)明的一個優(yōu)選實施例中,所述步驟101,具體可以包括子步驟Al、依據(jù)斷層的輸入數(shù)據(jù)、邊界的輸入數(shù)據(jù)及等值線的輸入數(shù)據(jù),建立相應(yīng)的抽象線段,獲得斷層的抽象線段、邊界的抽象線段及等值線的抽象線段。子步驟Α2、建立原始線段的索引關(guān)聯(lián)、抽象線段的索引關(guān)聯(lián)、所有交點的索引關(guān)聯(lián)、所有交點所在抽象線段的索引關(guān)聯(lián)及原始線段上的位置的索引關(guān)聯(lián),獲得原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息
7及原始線段上的位置的索引信息。子步驟A3、保存原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息及原始線段上的位置的索引信息。子步驟A4、保存每個四岔路口或三岔路口的數(shù)據(jù)信息。其中,所述每個四岔路口需要進行四次搜索,獲得相應(yīng)的每個四岔路口的數(shù)據(jù)信息;所述每個三岔路口需要進行三次搜索,獲得相應(yīng)的每個三岔路口的數(shù)據(jù)信息。子步驟A5、統(tǒng)計上述索引信息及數(shù)據(jù)信息,獲得填充區(qū)域的索引信息及數(shù)據(jù)信息。為了使本領(lǐng)域普通技術(shù)人員更好地理解本發(fā)明,下面詳細介紹初始化填充環(huán)境的過程,具體如下所述1)根據(jù)輸入的數(shù)據(jù)(斷層,邊界,等值線)建立抽象線段。針對閉合的折線,并且沒有和其他折線相交,那么本身就是一個抽象線段,如果相交,那么有η個交點,就會分成η 個個抽象線段。2)保存原始線段的索引,保存抽象線段的索引,保存所有交點的索引,保存所有交點所在抽象線段,原始線段上的位置的索引3)保存每個四岔路口或者三岔路口的信息,其中,一個路口肯定有三個出口(三岔路口)或者四個出口(四岔路口),將這幾個路口分別按照順時針和逆時針排列,保存下來。步驟102、通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果。其中,遍歷每個交點的四個或三個抽象線段,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果。為了使本領(lǐng)域普通技術(shù)人員更好地理解本發(fā)明,下面詳細介紹遍歷每個交點,搜索區(qū)域的過程,具體如下所述從任意一個交點的一個路口出發(fā),遇到每個交點結(jié)構(gòu),尋找下一個抽象線段時,只需要逆時針找到上一個抽像線段就行,直到遇到起始的交點,完成閉合區(qū)域的搜索,結(jié)束搜索。遇到這個抽象線段只有一端是交點的,目前是直接添加上的,保持斷層的原汁原味。也可以不加,這樣填充看起來更加漂亮。步驟103、針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果。為了使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明,在本發(fā)明的另一個優(yōu)選實施例中, 所述步驟103,具體可以包括子步驟Bi、針對某個交點的某個抽象線段進行搜索。子步驟Β2、當(dāng)針對某個交點的某個抽象線段的搜索過程完成后,獲得某個交點的某個抽象線段的搜索結(jié)果。子步驟Β3、對上述某個交點的某個抽象線段的搜索結(jié)果進行標(biāo)記。子步驟Β4、將上述某個交點的某個抽象線段的搜索結(jié)果保存在數(shù)據(jù)庫中。步驟104、依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作。
為了使本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明,在本發(fā)明的另一個優(yōu)選實施例中, 所述步驟104,具體可以包括子步驟Cl、若搜索到的區(qū)域內(nèi)部沒有區(qū)域,則執(zhí)行停止搜索區(qū)域的指令,結(jié)束搜索過程。子步驟C2、若搜索到的區(qū)域內(nèi)部有區(qū)域,則執(zhí)行搜索區(qū)域的操作。其中,所述子步驟C2具體可以包括子步驟D1、若搜索到的區(qū)域內(nèi)部有區(qū)域,則采用遞歸的方式進行搜索,獲得該區(qū)域內(nèi)部的所有區(qū)域。子步驟D2、針對獲得的該區(qū)域內(nèi)部的所有區(qū)域的任一區(qū)域內(nèi)部的區(qū)域挖去,獲得該任一區(qū)域內(nèi)部的空洞區(qū)域。子步驟D3、接收搜索返回指令,返回搜索,作出區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果。子步驟D4、依據(jù)區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果,執(zhí)行停止搜索或遞歸尋找區(qū)域及挖空區(qū)域的操作。子步驟D5、至到該區(qū)域內(nèi)部沒有區(qū)域,接收停止搜索區(qū)域的指令,結(jié)束搜索過程。其中,通過每個閉合區(qū)域相對應(yīng)的折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性。所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。其中,所述通過每個閉合區(qū)域相對應(yīng)的折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性的步驟,具體可以包括子步驟E1、通過每個閉合區(qū)域所擁有的抽象線段,獲得相應(yīng)的每個閉合區(qū)域的原始折線的附加信息。其中,所述每個閉合區(qū)域的原始折線的附件信息包括高程值或溫度值。子步驟E2、依據(jù)每個閉合區(qū)域的原始折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性。其中,所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、 每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。在本發(fā)明中,根據(jù)附加信息,可以用來決定區(qū)域繪制時的邊界線條,比如點線,虛線。另外還有區(qū)域刷子的屬性,平??吹降氖羌兩部梢愿鶕?jù)附加屬性來決定刷子的風(fēng)格,比如斜線,其中,斜線有點像斑馬線。為了使本領(lǐng)域的普通技術(shù)人員更好地理解本發(fā)明,下面詳細介紹搜索及填充區(qū)域的過程,具體如下所述1)搜索成功了一個填充區(qū)域X,需要判斷內(nèi)部是不是還有抽象線段或者邊,如果有,暫且表示為Z,找出,然后在X中剔除Z,如果Z是一個折線,那么為了美觀可以不用剔除,直接忽略。2)上一步的操作可以遞歸進行,比如類似于射箭靶子的環(huán)形那種形狀。3)假設(shè)某個交點的某個抽象線段已經(jīng)搜索過,那么將有一個標(biāo)志來表示已經(jīng)搜索過,這樣避免重復(fù)。4) 一個四岔路口交點要進行四次的搜索,三岔路口的交點進行三次。
5)因為每個閉合區(qū)域都會有等值線或者等值線和斷層拼接而成,那么可以根據(jù)等值線的高程值來決定閉合區(qū)域的顏色。在另外的模型應(yīng)用中,比如海洋溫度帶,那么填充區(qū)域有溫度這樣的屬性。以上是基于油田地質(zhì)模型來闡述本發(fā)明,而本發(fā)明不僅僅局限于該模型。參照圖3,示出了本發(fā)明一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法的實施例2 的示意圖,具體如下所述1)如圖3所示,該圖有斷層及等值線;其中,最外層的邊界是額外添加的區(qū)域限制,搜索的區(qū)域中有一個就是最外層的邊界,應(yīng)該排除掉。2)圖3中標(biāo)記了交點;其中,下標(biāo)沒有從0開始,而且順序是沒有規(guī)律的;同樣的,抽象線段,也沒有順序規(guī)律。3)遍歷每一個交點,本實施例中,從交點1開始,交點1是一個三叉交點,含有三個順序保存的抽象線段b,g,a,請注意b,g,a是循環(huán)雙向鏈表,可以很方便地由b得到g,由 g得到a,由a得到b。反之亦然。4)在初始化環(huán)境的時候,每個點相對每個抽象線段的關(guān)于是否搜索過的標(biāo)志都是 false的。表示還沒有搜索過。5)假設(shè)首先從點1的b邊開始。已知b邊關(guān)聯(lián)了點1和點2,這樣可以將b添加到當(dāng)前區(qū)域中。6)關(guān)于點2,順序保存了抽象線段c,h,b。7)由第5步推斷出是由抽象線段b找到點2的,那么在點2的的抽象線段鏈表中, 由抽象線段b逆時針找到抽象線段h,將h加入到當(dāng)前區(qū)域中。8)由抽象線段h可以找到點6,同第7步,在點6的抽像線段鏈表中,由h逆時針找到抽象線段k,將k保存到當(dāng)前區(qū)域中。9)繼續(xù)上面的步驟,找到抽象線段1,g。在上面的步驟中,順序找到點2,6,5,4, 每次找到一個新點,都需要檢查新點是否和起始點1相同,如果不同就繼續(xù)。10)找到抽象線段g后,會由g找出點1,此時,新點和起始點相同,意味著搜索區(qū)域完成。11)經(jīng)過的每一個點以及它的抽象線段,都要將是否搜索過的標(biāo)志置為true。比如例子中l(wèi)b,2hjk,51,4g為搜索過的。下次遇到的時候?qū)⑦^濾掉。12)在每次找到一個抽象線段的時候,需要記錄一個標(biāo)志,即該抽象線段的原始折線是等值線還是邊界還是斷層,如果找到了一個填充區(qū)域,但是卻沒有一個抽象線段的原始折線是等值線的,那么這個找出的區(qū)域?qū)嶋H上是無效的。若抽象線段的原始折線是外邊界,而抽象線段h的原始折線則是等值線。當(dāng)從Ia開始搜索時,追蹤搜索的區(qū)域為la,10f,lle,12y,15x,13d,3C,2b。而這些抽象線段的原始這些都是邊界,沒有一個是等值線,所以這個區(qū)域是無效的。13)上面提到需要遍歷每一個點的每一個抽象線段,假設(shè)現(xiàn)在遍歷到點5,抽象線段1。意味著從51開始,如果不管是否已經(jīng)搜索過,那么搜索的結(jié)果將是51,4g,lb, 2h, 6k。 這個結(jié)果和上面11步的結(jié)果是一樣的,所以當(dāng)從51開始的時候,只要發(fā)現(xiàn)了 51是已經(jīng)搜索過的,那么本次搜索區(qū)域就放棄,繼續(xù)進行下一步。14)再以點12為例,首先從12e開始,搜索的結(jié)果將是12e,llt。再從12t開始,搜索的路線是12t,llf, 10s,這時找到了點9,這里遇到一個新的情況,抽象線段r不是像抽象線段e那樣兩邊都是交點,而只有一個,所以這種情況,目前添加進去,僅僅作為保持原始的樣貌,當(dāng)然為了美觀,可以無視r,直接找到r的逆時針上面的q, 所以搜索路線是 12t, llf, 10s,9r,9q,8p,7o,7i,3d,13z, 17aa, 17bb, 14cc, 14ee, 16u, 16ff, 15y,形成一個大的復(fù)雜的閉合折線。當(dāng)找到一個閉合執(zhí)行的時候,也要注意他的內(nèi)部是否有其他的閉合等值線,比如這個例子中就有抽象線段V,W,他們都是閉合的,那么只需要排除掉V就行。因為ν是一個閉合等值線,它本身就是一個區(qū)域,此時可以使用遞歸的方法,繼續(xù)排除掉W,形成一個環(huán)。最后找到W,結(jié)束本次搜索。剛剛的大型搜索的區(qū)域包含了 9r這種只有一個交點的抽象線段,如果不需要它們,那么結(jié)果將是 12t, llf, 10s,9q,8p,7i,3d,13z, 17bb, 14ee, 16ff, 15y。最后一個搜索是從12y開始,在剛剛的12步的例子中,已經(jīng)被搜索過了,所以推出搜索,那么針對點12的三個搜索全部完成。參照圖4,示出了本發(fā)明中的搜索及填充區(qū)域的步驟流程圖。其中,圖4A為本發(fā)明中的搜索及填充區(qū)域的整體的步驟流程圖;圖4B為本發(fā)明中的統(tǒng)計數(shù)據(jù)信息的步驟流程圖;圖4C為本發(fā)明中的對抽象線段進行區(qū)域搜索的步驟流程圖。具體如下所述圖4A為本發(fā)明中的搜索及填充區(qū)域的整體的步驟流程圖,具體可以包括1)配置填充區(qū)域;2)遍歷每一個焦點的四個(三個)抽象線段,進行填充區(qū)域搜索;3)針對某個交點的某個抽象線段搜索區(qū)域;4)找到的區(qū)域內(nèi)部是否還有區(qū)域;5)作出結(jié)束本次搜索的操作;6)或作出根據(jù)上面的方法遞歸找出所有區(qū)域,將內(nèi)部的區(qū)域挖去,形成空洞區(qū)域的操作。圖4B為本發(fā)明中的統(tǒng)計數(shù)據(jù)信息的步驟流程圖,具體可以包括1)統(tǒng)計邊界和斷層信息;2)統(tǒng)計所有折線的交點,以及抽象線段。圖4C為本發(fā)明中的對抽象線段進行區(qū)域搜索的步驟流程圖,具體可以包括1)針對某個交點P的某個抽象線段搜索區(qū)域;2)根據(jù)抽象線段找到下個交點A ;3)找到交點A并且A和P不一樣;4)作出結(jié)束本次搜索的操作;5)或作出針對交點A逆時針找到上一個抽象線段的操作。總之,本發(fā)明提供了提供一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,該方法是一種新型的適用范圍更廣的填充區(qū)域的方法。 以上對本發(fā)明所提供的一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,其特征在于,包括 初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域;通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果; 針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果; 依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作。
2.如權(quán)利要求1所述的方法,其特征在于,所述初始化填充區(qū)域,獲得填充區(qū)域的索引信息及數(shù)據(jù)信息的步驟,包括依據(jù)斷層的輸入數(shù)據(jù)、邊界的輸入數(shù)據(jù)及等值線的輸入數(shù)據(jù),建立相應(yīng)的抽象線段,獲得斷層的抽象線段、邊界的抽象線段及等值線的抽象線段;建立原始線段的索引關(guān)聯(lián)、抽象線段的索引關(guān)聯(lián)、所有交點的索引關(guān)聯(lián)、所有交點所在抽象線段的索引關(guān)聯(lián)及原始線段上的位置的索引關(guān)聯(lián),獲得原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息及原始線段上的位置的索引信息;保存原始線段的索引信息、抽象線段的索引信息、所有交點的索引信息、所有交點所在抽象線段的索引信息及原始線段上的位置的索引信息; 保存每個四岔路口或三岔路口的數(shù)據(jù)信息;統(tǒng)計上述索引信息及數(shù)據(jù)信息,獲得填充區(qū)域的索引信息及數(shù)據(jù)信息。
3.如權(quán)利要求2所述的方法,其特征在于所述每個四岔路口需要進行四次搜索,獲得相應(yīng)的每個四岔路口的數(shù)據(jù)信息; 所述每個三岔路口需要進行三次搜索,獲得相應(yīng)的每個三岔路口的數(shù)據(jù)信息。
4.如權(quán)利要求1所述的方法,其特征在于,所述通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果的步驟,包括遍歷每個交點的四個或三個抽象線段,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)^ ο
5.如權(quán)利要求1所述的方法,其特征在于,所述針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果的步驟,包括針對某個交點的某個抽象線段進行搜索;當(dāng)針對某個交點的某個抽象線段的搜索過程完成后,獲得某個交點的某個抽象線段的搜索結(jié)果;對上述某個交點的某個抽象線段的搜索結(jié)果進行標(biāo)記; 將上述某個交點的某個抽象線段的搜索結(jié)果保存在數(shù)據(jù)庫中。
6.如權(quán)利要求1所述的方法,其特征在于,所述依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作的步驟,包括若搜索到的區(qū)域內(nèi)部沒有區(qū)域,則執(zhí)行停止搜索區(qū)域的指令,結(jié)束搜索過程; 若搜索到的區(qū)域內(nèi)部有區(qū)域,則執(zhí)行搜索區(qū)域的操作。
7.如權(quán)利要求6所述的方法,其特征在于,所述若搜索到的區(qū)域內(nèi)部有區(qū)域,則執(zhí)行搜索區(qū)域的操作的步驟,包括若搜索到的區(qū)域內(nèi)部有區(qū)域,則采用遞歸的方式進行搜索,獲得該區(qū)域內(nèi)部的所有區(qū)域;針對獲得的該區(qū)域內(nèi)部的所有區(qū)域的任一區(qū)域內(nèi)部的區(qū)域挖去,獲得該任一區(qū)域內(nèi)部的空洞區(qū)域;接收搜索返回指令,返回搜索,作出區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果; 依據(jù)區(qū)域內(nèi)部是否有區(qū)域的判斷結(jié)果,執(zhí)行停止搜索或遞歸尋找區(qū)域及挖空區(qū)域的操作;至到該區(qū)域內(nèi)部沒有區(qū)域,接收停止搜索區(qū)域的指令,結(jié)束搜索過程。
8.如權(quán)利要求1所述的方法,其特征在于通過每個閉合區(qū)域相對應(yīng)的折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性; 其中,所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。
9.如權(quán)利要求8所述的方法,其特征在于,所述通過每個閉合區(qū)域相對應(yīng)的折線信息, 獲得相應(yīng)的每個閉合區(qū)域的屬性的步驟,包括通過每個閉合區(qū)域所擁有的抽象線段,獲得相應(yīng)的每個閉合區(qū)域的原始折線的附加信息;依據(jù)每個閉合區(qū)域的原始折線的附加信息,獲得相應(yīng)的每個閉合區(qū)域的屬性; 其中,所述每個閉合區(qū)域的原始折線的附加信息包括高程值或溫度值; 所述每個閉合區(qū)域的屬性包括每個閉合區(qū)域的顏色屬性、邊界線條的屬性、每個閉合區(qū)域所使用的刷子的填充風(fēng)格的屬性。
全文摘要
本發(fā)明提供了一種采用幾何拓撲學(xué)搜索及填充區(qū)域的方法,包括初始化填充區(qū)域,獲得經(jīng)過初始化的填充區(qū)域;通過遍歷每個交點的方式,對填充區(qū)域進行搜索,獲得填充區(qū)域的搜索結(jié)果;針對某個交點的某個抽象線段進行搜索,獲得某個交點的某個抽象線段的搜索結(jié)果;依據(jù)搜索到的區(qū)域內(nèi)部是否有區(qū)域的搜索結(jié)果,執(zhí)行相應(yīng)的操作;該方法是一種新型的適用范圍更廣的填充區(qū)域的方法。
文檔編號G06T11/40GK102411789SQ20111032251
公開日2012年4月11日 申請日期2011年10月21日 優(yōu)先權(quán)日2011年10月21日
發(fā)明者李偉 申請人:克拉瑪依紅有軟件有限責(zé)任公司