專利名稱:快速不規(guī)則三角網(wǎng)生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到一種由散點(diǎn)數(shù)據(jù)生成不規(guī)則三角網(wǎng)的方法,屬于計(jì)算機(jī)圖形學(xué)領(lǐng)域。更確切的說,本發(fā)明涉及將散點(diǎn)數(shù)據(jù)根據(jù)參數(shù)自動(dòng)劃分成數(shù)據(jù)塊進(jìn)行局部三角網(wǎng)生成,然后融合局部三角網(wǎng)成為初始整體三角網(wǎng)并對(duì)初始整體三角網(wǎng)進(jìn)行優(yōu)化生成不規(guī)則三角網(wǎng)的方法及其軟件。
背景技術(shù):
由散點(diǎn)集經(jīng)過三角剖分聯(lián)結(jié)而成的滿足一定要求的三角網(wǎng)稱為不規(guī)則三角網(wǎng)由于其適應(yīng)性好,在測(cè)繪,遙感,農(nóng)業(yè),水利,土地和地學(xué)分析各個(gè)領(lǐng)域得到了廣泛應(yīng)用。但是由于實(shí)際情況復(fù)雜,實(shí)際數(shù)據(jù)量又十分龐大,所以,長期以來如何對(duì)散點(diǎn)數(shù)據(jù)進(jìn)行快速三角剖分一直是研究熱點(diǎn)之一。人們對(duì)三角剖分方法進(jìn)行了大量研究,提出了各種構(gòu)造方法,如先構(gòu)造Voronoi圖,再構(gòu)造Delaunay三角形的兩步法;已經(jīng)再對(duì)平面散亂點(diǎn)集進(jìn)行三角化過程中,以有向基邊相對(duì)角度最大化為準(zhǔn)則搜索新點(diǎn)法等等。歸納而言現(xiàn)在的不規(guī)則三角網(wǎng)生成方法主要有邊擴(kuò)展法,點(diǎn)插入法,遞歸分割法等,以及它們的改進(jìn)方法,簡(jiǎn)要介紹如下邊擴(kuò)展法先任找一個(gè)點(diǎn),找離它距離最近的點(diǎn)連成一個(gè)邊,以該邊為基礎(chǔ),遵循角度最大原則或距離最小原則找到第三個(gè)點(diǎn),形成初始三角形,以該三角形的三條邊為基礎(chǔ),遵循同樣的原則向外擴(kuò)展,直到不能擴(kuò)展為止,在生成三角網(wǎng)后調(diào)用局部優(yōu)化方法使之最優(yōu)。
點(diǎn)插入法先生成離散點(diǎn)的外凸多邊形,然后內(nèi)部用三角形分割之,判斷其余的點(diǎn)分別落在哪個(gè)三角形內(nèi),以該點(diǎn)為頂點(diǎn),把所在的三角形一分為三,直到所有的點(diǎn)都插入為止,然后調(diào)用局部優(yōu)化方法,把三角網(wǎng)調(diào)整到最優(yōu)。
分治法先將離散點(diǎn)按先橫坐標(biāo)后縱坐標(biāo)(反過來也可)進(jìn)行排序,然后將其分割成點(diǎn)數(shù)大致相等的兩個(gè)部分,兩部分又各自再分割成兩部分,直到子集中只包含三個(gè)點(diǎn)而形成三角形,然后自下而上地逐級(jí)合并生成最終的三角網(wǎng),用局部優(yōu)化方法優(yōu)化所生成的三角網(wǎng),使之成為最優(yōu)。
這些方法大部分是通過對(duì)三角網(wǎng)的邊為基礎(chǔ)進(jìn)行擴(kuò)展,當(dāng)擴(kuò)展任一個(gè)邊為三角形的時(shí)候,要對(duì)尚未處理到的所有點(diǎn)進(jìn)行判斷,從而大大影響了不規(guī)則三角網(wǎng)的生成速度。此外,目前提出的以有序點(diǎn)為著眼點(diǎn)的三角化方法中,由于存在排序操作問題,以及大量的交點(diǎn)測(cè)試以及優(yōu)化的不合理,從而使得三角化效率也不高。基于分治的方法雖然將全部散點(diǎn)分割成不同部分,分別進(jìn)行處理,但是由于被處理散點(diǎn)數(shù)據(jù)的不規(guī)則性,導(dǎo)致局部三角網(wǎng)融和方法要處理各種情況,計(jì)算復(fù)雜從而導(dǎo)致三角網(wǎng)生成速度仍然不夠快。此外由于在實(shí)際采樣過程中,相鄰采樣點(diǎn)的最小距離和最大距離往往是已知的,如何利用這些潛在的已知信息來加速三角網(wǎng)的生成也是已有算法沒有考慮的。
發(fā)明內(nèi)容
提出了一種快速的不規(guī)則三角網(wǎng)生成方法并包括將不規(guī)則散點(diǎn)進(jìn)行三角剖分生成不規(guī)則三角網(wǎng)的軟件。本發(fā)明中方法具有數(shù)據(jù)預(yù)處理,局部三角網(wǎng)生成,局部三角網(wǎng)融合,整體初始三角網(wǎng)優(yōu)化四個(gè)環(huán)節(jié)。說明如下預(yù)處理環(huán)節(jié)通過比較與中心點(diǎn)的位置關(guān)系將各個(gè)散點(diǎn)分配到數(shù)據(jù)塊矩陣各個(gè)單元數(shù)據(jù)塊,同時(shí)每個(gè)數(shù)據(jù)塊對(duì)其塊中的散點(diǎn)數(shù)據(jù)按照先行后列掃描方式予以排序;局部三角網(wǎng)生成環(huán)節(jié)利用數(shù)據(jù)塊中數(shù)據(jù)點(diǎn)的排序順序,按照采用凸包技術(shù)對(duì)每個(gè)數(shù)據(jù)塊中的散點(diǎn)數(shù)據(jù)生成局部三角網(wǎng)及其外圍多邊形;局部三角網(wǎng)融合環(huán)節(jié)是利用凸包技術(shù)對(duì)數(shù)據(jù)塊矩陣中每行的局部數(shù)據(jù)塊三角網(wǎng)進(jìn)行融和,生成行三角網(wǎng)及其外圍多邊形,然后,融合行三角網(wǎng)為整體初始三角網(wǎng);最后一個(gè)環(huán)節(jié)是整體初始三角網(wǎng)優(yōu)化環(huán)節(jié),這個(gè)環(huán)節(jié)采用考慮相鄰點(diǎn)最大距離閾值的最小角最大化原則進(jìn)行優(yōu)化,形成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)。
此外,通過設(shè)置相鄰點(diǎn)最大距離閾值參數(shù),用戶可以控制生成的三角網(wǎng)形態(tài)。
圖1展示了一個(gè)待剖分散點(diǎn)集(局部)。
圖2展示了在某一相鄰點(diǎn)最大距離閾值參數(shù)下的對(duì)該點(diǎn)集的生成的三角網(wǎng)(局部)。
圖3展示了在另一相鄰點(diǎn)最大距離閾值參數(shù)下的對(duì)該點(diǎn)集的生成的三角網(wǎng)(局部)。
圖4是本方法的方框圖。
圖5是基于本方法開發(fā)的方法驗(yàn)證系統(tǒng)框圖。
通過圖2,圖3可以看出,在同樣的散點(diǎn)集合上(如圖1所示),通過設(shè)置不同的相鄰點(diǎn)最大距離閾值參數(shù)就可以控制最終生成的三角網(wǎng)形態(tài)。
以下對(duì)圖4本方法的方框圖中各個(gè)步驟的進(jìn)一步的描述(1)在步驟1,根據(jù)用戶設(shè)定或由系統(tǒng)根據(jù)統(tǒng)計(jì)學(xué)原理,對(duì)數(shù)據(jù)集合進(jìn)行采樣分析,根據(jù)數(shù)據(jù)集合的分布情況和期望數(shù)據(jù)塊中應(yīng)該包含的數(shù)據(jù)點(diǎn)數(shù),估計(jì)出原點(diǎn)坐標(biāo)和數(shù)據(jù)塊邊長,邏輯上將數(shù)據(jù)點(diǎn)所在的平面劃分成排列整齊的數(shù)據(jù)塊矩陣。然后根據(jù)數(shù)據(jù)點(diǎn)的坐標(biāo)將其分配到各個(gè)數(shù)據(jù)塊中。在這個(gè)分配環(huán)節(jié)中,當(dāng)數(shù)據(jù)點(diǎn)分配到數(shù)據(jù)塊中時(shí),數(shù)據(jù)塊維持一個(gè)先行后列掃描順序的數(shù)據(jù)點(diǎn)序列。
(2)數(shù)據(jù)點(diǎn)都分配到數(shù)據(jù)塊后,進(jìn)行步驟2的操作,對(duì)各個(gè)數(shù)據(jù)塊中數(shù)據(jù)按照其在數(shù)據(jù)點(diǎn)序列中的順序進(jìn)行有序三角剖分。形成局部三角網(wǎng)及其外圍多邊形。并確保最終的局部三角網(wǎng)外圍多邊形為凸包。該方法首先找到排序后散點(diǎn)隊(duì)列中可以生成第一個(gè)三角形的相鄰的三個(gè)點(diǎn)Pi,Pi+1,Pi+2生成當(dāng)前三角網(wǎng)外圍多邊形,然后按照順序?qū)Ⅻc(diǎn)加入到當(dāng)前三角網(wǎng)外圍多邊形中,利用這些點(diǎn)分布的順序性,當(dāng)前要處理的散點(diǎn)一定分布在當(dāng)前三角網(wǎng)外圍多邊形的外面。可以快速定位要加入點(diǎn)所對(duì)應(yīng)的當(dāng)前三角網(wǎng)外圍多邊形的基邊,這樣不斷將同一數(shù)據(jù)塊中的散點(diǎn)加入到當(dāng)前三角網(wǎng)。只在每行數(shù)據(jù)處理完后修正當(dāng)前三角網(wǎng)外圍多邊形為凸包。對(duì)于各個(gè)數(shù)據(jù)塊重復(fù)這一個(gè)過程,由于數(shù)據(jù)分布的隨機(jī)性,有的數(shù)據(jù)塊中的數(shù)據(jù)可能為空,要么數(shù)據(jù)塊中的各個(gè)散點(diǎn)排列為一條直線,這些都可以當(dāng)成特殊情況處理。不必像其他方法那樣必須合并數(shù)據(jù)塊。
(3)在步驟3,利用同一行數(shù)據(jù)塊的左右關(guān)系,將同行相連的數(shù)據(jù)塊中的三角網(wǎng)外圍多邊形進(jìn)行融和。由于數(shù)據(jù)塊的位置關(guān)系,右側(cè)數(shù)據(jù)塊中的三角網(wǎng)外圍多邊形上的點(diǎn)一定分布在左側(cè)數(shù)據(jù)塊中的三角網(wǎng)外圍多邊形上的點(diǎn)的右側(cè),利用這一關(guān)系可以很容易找到兩個(gè)多邊形的上下支撐線,利用上下支撐線和左右兩側(cè)數(shù)據(jù)塊中的三角網(wǎng)外圍多邊形的部分邊,就圍成了一個(gè)只能在上下支撐線處進(jìn)行剖分的凹多邊形。只對(duì)其在上下支撐線處進(jìn)行剖分就可以融和左右兩個(gè)數(shù)據(jù)塊中的三角網(wǎng)。對(duì)同一行中的各個(gè)數(shù)據(jù)塊進(jìn)行同樣的操作就可以融和出行三角網(wǎng)以及外圍多邊形,在融合過程中記錄行局部三角網(wǎng)的外圍多邊形的凹點(diǎn)的以此將行多邊形的外圍多邊形的邊分解成若干個(gè)凸邊組。
(4)在步驟4,當(dāng)各個(gè)行三角網(wǎng)及其外圍多邊形生成之后,對(duì)于數(shù)據(jù)塊矩陣中相鄰行多邊形利用凸包融合技術(shù)融合相對(duì)應(yīng)的凸邊組。形成整體初始三角網(wǎng)。
(5)在步驟5,利用考慮相鄰點(diǎn)最大距離閾值的局部優(yōu)化方法,確保三角網(wǎng)中的連接出最多的三角形,盡可能減少空洞的產(chǎn)生;同時(shí)采用最小角最大化原則進(jìn)行優(yōu)化,形成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)(TIN)。
我們結(jié)合軟件具體實(shí)現(xiàn)方式,開發(fā)了驗(yàn)證系統(tǒng)。圖5就是方法驗(yàn)證系統(tǒng)的框圖。框圖中各個(gè)模塊從上到下依次工作,就可以對(duì)一個(gè)散點(diǎn)數(shù)據(jù)集合完成不規(guī)則三角網(wǎng)的生成工作。
具體實(shí)施例方式
基于本發(fā)明方法開發(fā)了方法驗(yàn)證系統(tǒng),該系統(tǒng)包括用戶輸入?yún)?shù)接口,數(shù)據(jù)預(yù)處理模塊,數(shù)據(jù)塊局部三角網(wǎng)生成模塊,行三角網(wǎng)及其外圍多邊形生成模塊,全局初始三角網(wǎng)生成模塊,考慮相鄰點(diǎn)最大距離閾值的采用最小角最大化原則三角網(wǎng)優(yōu)化模塊,結(jié)果返回接口,用來返回生成的不規(guī)則三角網(wǎng)中各個(gè)三角形的頂點(diǎn)坐標(biāo)索引。系統(tǒng)各個(gè)模塊調(diào)用次序如圖5所示,并詳細(xì)說明如下首先系統(tǒng)調(diào)用用戶輸入?yún)?shù)接口,接收用戶輸入的各種參數(shù),包括用來設(shè)置原點(diǎn)坐標(biāo),相鄰點(diǎn)最大距離閾值,數(shù)據(jù)塊散點(diǎn)隊(duì)列初始長度和散點(diǎn)數(shù)據(jù)等。如果用戶不輸入具體參數(shù),則由系統(tǒng)根據(jù)數(shù)據(jù)集自動(dòng)設(shè)置這些參數(shù)。在這個(gè)部分,系統(tǒng)生成基本數(shù)據(jù)結(jié)構(gòu),并設(shè)置各種參數(shù)。
然后,系統(tǒng)調(diào)用數(shù)據(jù)預(yù)處理模塊,將數(shù)據(jù)點(diǎn)分配到數(shù)據(jù)塊矩陣中的各個(gè)數(shù)據(jù)塊單元。數(shù)據(jù)塊矩陣大小是動(dòng)態(tài)的,根據(jù)實(shí)際輸入點(diǎn)的分布數(shù)據(jù)塊矩陣進(jìn)行動(dòng)態(tài)調(diào)整,目標(biāo)就是將所有數(shù)據(jù)點(diǎn)都分配到各自的數(shù)據(jù)塊中。在數(shù)據(jù)點(diǎn)分配到數(shù)據(jù)塊的過程中,每個(gè)數(shù)據(jù)塊維持一個(gè)先行后列掃描順序的采用堆排序方法排序的塊中數(shù)據(jù)點(diǎn)的隊(duì)列。
全部數(shù)據(jù)點(diǎn)都分配到各自的數(shù)據(jù)塊后,系統(tǒng)調(diào)用數(shù)據(jù)塊局部三角網(wǎng)生成模塊,對(duì)各個(gè)數(shù)據(jù)塊中數(shù)據(jù)按照其在數(shù)據(jù)點(diǎn)序列中的順序進(jìn)行有序三角剖分。先找到隊(duì)列中最初不共線的三個(gè)點(diǎn)生成初始多三角網(wǎng)及其外圍多邊形,然后依次將隊(duì)列中的點(diǎn)與當(dāng)前局部三角網(wǎng)外圍多邊形中一個(gè)邊形成新三角網(wǎng),擴(kuò)展局部三角網(wǎng)及其外圍多邊形。并確保最終的局部三角網(wǎng)外圍多邊形為凸包。
所有數(shù)據(jù)塊中的局部三角網(wǎng)及其外圍多邊形生成完畢后,系統(tǒng)調(diào)用行三角網(wǎng)及其外圍多邊形生成模塊,對(duì)數(shù)據(jù)塊矩陣中同行的局部三角網(wǎng)利用凸包技術(shù)進(jìn)行融合。生成行三角網(wǎng)及其外圍多邊形。在融合過程中記錄行局部三角網(wǎng)的外圍多邊形的凹點(diǎn)的以此將行多邊形的外圍多邊形的邊分解成若干個(gè)凸邊組。
對(duì)數(shù)據(jù)塊矩陣中所有行三角網(wǎng)及其外圍多邊形生成完畢后,系統(tǒng)調(diào)用全局初始三角網(wǎng)生成模塊,對(duì)數(shù)據(jù)塊矩陣中相鄰行多邊形利用凸包融合技術(shù)融合相對(duì)應(yīng)的凸邊組,生成整體初始三角網(wǎng)。
接著,系統(tǒng)調(diào)用三角網(wǎng)優(yōu)化模塊,對(duì)于整體初始三角網(wǎng)采用考慮相鄰點(diǎn)最大距離閾值的局部優(yōu)化方法,確保三角網(wǎng)中的連接出最多的三角形,減少空洞的產(chǎn)生;同時(shí)采用最小角最大化原則進(jìn)行優(yōu)化,生成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)(TIN)。
最后系統(tǒng)調(diào)用結(jié)果返回接口,將不規(guī)則三角網(wǎng)(TIN)各個(gè)三角形的頂點(diǎn)坐標(biāo)索引返回給用戶。
本方法經(jīng)過系統(tǒng)原型的具體實(shí)施,驗(yàn)證了方法的有效性。由于采用分塊技術(shù),導(dǎo)致局部排序操作的時(shí)間消耗較整體數(shù)據(jù)點(diǎn)排序時(shí)間消耗減小。此外在將局部三角網(wǎng)融合成整體三角網(wǎng)的過程中,通過記錄凹點(diǎn),將非凸包劃分成若干凸邊組,然后充分利用凸包融合技術(shù),徹底避免了其他不規(guī)則三角網(wǎng)生成方法中的交點(diǎn)測(cè)試,可以縮短不規(guī)則三角網(wǎng)的構(gòu)建時(shí)間,提高不規(guī)則三角網(wǎng)的構(gòu)建速度。
權(quán)利要求
1.一種由任意數(shù)據(jù)點(diǎn)生成不規(guī)則三角網(wǎng)的方法,其特征在于方法具體如下首先將數(shù)據(jù)點(diǎn)根據(jù)輸入的參數(shù)劃分成數(shù)據(jù)塊;其次,對(duì)于各個(gè)數(shù)據(jù)塊中數(shù)據(jù)按照行掃描方式進(jìn)行排序,并按照排序后的順序生成局部三角網(wǎng);然后,先對(duì)同行的數(shù)據(jù)塊中的相鄰局部三角網(wǎng)進(jìn)行融合,形成行局部三角網(wǎng),在對(duì)相鄰行三角網(wǎng)進(jìn)行融合,形成整體初始三角網(wǎng);最后,對(duì)于整體三角網(wǎng)采用考慮相鄰點(diǎn)最大距離閾值的最小角最大化原則進(jìn)行優(yōu)化,形成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)(TIN)。
2.對(duì)于權(quán)利要求1的這種生成不規(guī)則三角網(wǎng)(TIN)的方法,其特征是以下對(duì)方法所作的進(jìn)一步的描述(1)由用戶設(shè)定或由系統(tǒng)默認(rèn)設(shè)置參數(shù)后,將數(shù)據(jù)點(diǎn)分配到所在的空間區(qū)域形成若干數(shù)據(jù)塊。(2)對(duì)數(shù)據(jù)塊中的數(shù)據(jù)點(diǎn)按照行掃描方式進(jìn)行排序,按照點(diǎn)的掃描順序生成局部三角網(wǎng)。(3)進(jìn)行融合操作,首先對(duì)同行的局部三角網(wǎng)進(jìn)行相互融合,生成行局部三角網(wǎng);然后對(duì)各個(gè)相鄰的行局部三角網(wǎng)進(jìn)行融合,生成初始整體三角網(wǎng)。(4)對(duì)于整體三角網(wǎng)采用考慮相鄰點(diǎn)最大距離閾值的最小角最大化原則進(jìn)行優(yōu)化,形成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)(TIN)。
3.根據(jù)權(quán)利要求2描述的這種不規(guī)則三角網(wǎng)(TIN)的生成方法,其特征是在生成數(shù)據(jù)塊的方面,根據(jù)用戶設(shè)定或由系統(tǒng)根據(jù)統(tǒng)計(jì)學(xué)原理,對(duì)數(shù)據(jù)集合進(jìn)行采樣分析,根據(jù)數(shù)據(jù)集合的分布情況和期望數(shù)據(jù)塊中應(yīng)該包含的數(shù)據(jù)點(diǎn)數(shù),估計(jì)出原點(diǎn)坐標(biāo)和數(shù)據(jù)塊邊長,將數(shù)據(jù)點(diǎn)所分布的平面邏輯上分成排列整齊的數(shù)據(jù)塊矩陣,數(shù)據(jù)點(diǎn)根據(jù)其與原點(diǎn)的相對(duì)位置,被分配到其所在的數(shù)據(jù)塊中。
4.根據(jù)權(quán)利要求2描述的這種不規(guī)則三角網(wǎng)(TIN)的生成方法,其特征是在各個(gè)數(shù)據(jù)塊中局部三角形及其外圍多邊形生成完畢后,利用凸包技術(shù)對(duì)數(shù)據(jù)塊矩陣中同行的數(shù)據(jù)塊中的三角網(wǎng)進(jìn)行融合操作。形成行局部三角網(wǎng)及其外圍多邊形。在融合過程中記錄行局部三角網(wǎng)的外圍多邊形的凹點(diǎn)的以此將行多邊形的外圍多邊形的邊分解成若干個(gè)凸邊組。
5.根據(jù)權(quán)利要求2描述的這種不規(guī)則三角網(wǎng)(TIN)的生成方法,其特征是當(dāng)各個(gè)行三角網(wǎng)及其外圍多邊形生成之后,對(duì)于數(shù)據(jù)塊矩陣中相鄰行多邊形利用凸包融合技術(shù)融合相對(duì)應(yīng)的凸邊組。形成整體初始三角網(wǎng)。
6.根據(jù)權(quán)利要求2描述的這種不規(guī)則三角網(wǎng)(TIN)的生成方法,其特征是考慮相鄰點(diǎn)最大距離閾值的局部優(yōu)化方法,確保三角網(wǎng)中的連接出最多的三角形,盡可能減少空洞的產(chǎn)生;同時(shí)采用最小角最大化原則進(jìn)行優(yōu)化,形成最終的符合Delaunay法則的不規(guī)則三角網(wǎng)(TIN)
全文摘要
本發(fā)明快速不規(guī)則三角網(wǎng)生成方法屬于計(jì)算機(jī)圖形學(xué)領(lǐng)域中的一項(xiàng)支柱性技術(shù),可以廣泛應(yīng)用于地理信息系統(tǒng)、地質(zhì)勘探等多種領(lǐng)域。具體包括數(shù)據(jù)點(diǎn)自動(dòng)分塊方法、局部三角網(wǎng)生成方法、局部三角網(wǎng)融合方法、考慮相鄰點(diǎn)最大距離閾值的最小角最大化原則優(yōu)化方法四個(gè)部分以及利用本方法的軟件。本方法避免了其他不規(guī)則三角網(wǎng)生成方法中交點(diǎn)測(cè)試等耗時(shí)操作,縮短不規(guī)則三角網(wǎng)的構(gòu)建時(shí)間,提高不規(guī)則三角網(wǎng)的構(gòu)建速度,還可以通過相鄰點(diǎn)最大距離閾值參數(shù)控制最終生成的三角網(wǎng)形態(tài)。
文檔編號(hào)G06T17/00GK101046893SQ20071000255
公開日2007年10月3日 申請(qǐng)日期2007年1月26日 優(yōu)先權(quán)日2007年1月26日
發(fā)明者瞿春松 申請(qǐng)人:北京國泰清濟(jì)科技發(fā)展有限公司