專利名稱:一種三角剖分方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機(jī)輔助設(shè)計領(lǐng)域,特別涉及一種平面上散亂點集的三角剖分方法。
背景技術(shù):
在計算機(jī)輔助幾何設(shè)計、曲面重構(gòu)、有限元分析等領(lǐng)域中,經(jīng)常要處理這樣的問 題給定一組散亂數(shù)據(jù)Pi = Ixi, Yi, zj (i = 1,2,…,η),首先要在平面上對其進(jìn)行三角 剖分,然后在三角域上構(gòu)造插值曲面,最后以插值曲面為基礎(chǔ)進(jìn)行各種分析、計算及其它處 理。因此平面點集的三角剖分是圖形學(xué)領(lǐng)域的一個基本問題。目前,比較常用的二維三角剖分的優(yōu)化標(biāo)準(zhǔn)有最大最小距離標(biāo)準(zhǔn)、圓標(biāo)準(zhǔn)、最 大-最小角標(biāo)準(zhǔn)、最大-最小高標(biāo)準(zhǔn)等。這些標(biāo)準(zhǔn)的一個基本出發(fā)點就是盡量避免平面三角 形出現(xiàn)太尖的情況,也就是避免出現(xiàn)三角形內(nèi)角太小的情況。因為根據(jù)逼近論的分析結(jié)果, 三角曲面的逼近誤差與三角區(qū)域的最小內(nèi)角有關(guān),避免過尖的三角形就可提高逼近精度。Delaunay三角剖分具有最小內(nèi)角最大以及平均形態(tài)比最大的性質(zhì),因此它是給定 區(qū)域的點集的最佳三角剖分[1]。長期以來,許多學(xué)者都在研究構(gòu)建Delaimay三角網(wǎng)的方 法,出現(xiàn)了許多算法,主要可分為逐點插入算法、分割-合并算法和三角網(wǎng)生長算法三類。 但是,這三類算法都比較復(fù)雜,實現(xiàn)起來較為困難,在實際應(yīng)用中很少直接使用。
發(fā)明內(nèi)容
為了彌補現(xiàn)有的算法難以在現(xiàn)實直接應(yīng)用的不足,本發(fā)明提供了一種新的方法, 可以用較為簡單的方式來實現(xiàn)三角剖分。本發(fā)明解決其實現(xiàn)問題所采用的技術(shù)方案是將三角剖分過程分成三個不同的階 段,每個階段用較為簡單的算法來實現(xiàn)。首先用隨機(jī)算法來實現(xiàn)歐幾里德最小支撐樹;然后 在歐幾里德最小支撐樹中每次加入一條邊,構(gòu)成三角形網(wǎng)絡(luò),直到最后一條邊加入為止;最 后,使用最大最小角準(zhǔn)則,通過局部變換,得到所需要的最佳三角剖分。本發(fā)明的有益效果是,可以用較為簡單的方法來實現(xiàn)三角剖分,可以方便的應(yīng)用 在實際需求中。
具體實施例方式在本發(fā)明中,三角剖分過程被分成三個不同的階段,每個階段用較為簡單的算法 來實現(xiàn)。首先用隨機(jī)算法來實現(xiàn)歐幾里德最小支撐樹;然后在歐幾里德最小支撐樹中每次 加入一條邊,構(gòu)成三角形網(wǎng)絡(luò),直到最后一條邊加入為止;最后,使用最大最小角準(zhǔn)則,通過 局部變換,得到所需要的最佳三角剖分。在引入算法之前,提出了三個定義和兩個約束定義1 設(shè)P = {P” P2,…,PJ是一個平面點集,則歐幾里德最小支撐樹(EMST) 是一棵連接P中所有點的樹,并且其邊長之和為最小,簡稱最小支撐樹。
定義2 設(shè)圖G = (V, E),其中V是頂點集,E是邊集,若有邊eik = (vi, vk),eij =(vi, vj)則稱eik與eij為一對相關(guān)邊。有向邊vivk與vivj之間的夾角為相關(guān)邊對 eik, eij的夾角。定義3 由EMST或當(dāng)前圖中相關(guān)邊對組成的表稱為相關(guān)邊對表(簡記為IEPL)。在向EMST中加入一邊形成三角形網(wǎng)絡(luò)時,必須滿足如下約束條件約束1 三角形相互之間是不相交的,即兩個三角形除端點外無交點,稱此約束為 三角形相交約束。約束2 三角形相互之間是互不包含的,即任何一個三角形不完全包含其它三角 形,稱此約束為三角形包含約束。整個三角剖分過程被劃分成了三個不同的算法算法1Al.求出平面點集P = (P1, P2,…,PJ的最小生成樹EMST(P)(參見算法2)。A2.根據(jù)EMST(P)求出初始相關(guān)邊對表IEPL(P)。A3.根據(jù)相關(guān)邊對的夾角,從小到大排序相關(guān)邊對表IEPL(P)中的所有相關(guān)邊對。A4.初始化三角形網(wǎng)格表 TML(Triangle Mesh List) [2] A5.當(dāng)IEPL(P)中還存在一個邊對沒有處理時,則從中選擇夾角最小的相關(guān)邊 eik, eij對,并置mark標(biāo)志為1,如果該相關(guān)邊對構(gòu)成的三角形Δ vivjvk,同時滿足約束1 和約束2,那么做以下操作①把三角形Δ vivjvk加入到TML中;②把新邊(vi,vk)加入到EMST(P)中;③把新邊(vi,vk)引入的新的相關(guān)邊對,根據(jù)其夾角插入到排序的IEPL(P)中。A6.按最大-最小內(nèi)角準(zhǔn)則,通過局部優(yōu)化變換,得到Delaimay三角剖分(參見算 法3)。算法2 (求 EMST (P))Bi.設(shè)V是要輸入的平面點集,E是邊集,初始情況下E為空。開始時候估算任意 兩個點的最大距離D,取Cl = C0nst*D/n (const是大于1的常量,使得任意兩點間距離小于 Cl,n是V中點的數(shù)目),進(jìn)行如下操作對于V中的一個點p,找到與ρ相距Cl的所有點,存入點集Q中對于Q中的每個點q,將邊(p,q)加入E中,轉(zhuǎn)步驟①,直至所有的點ρ都已經(jīng)考 慮到。Β2.用D. R. Karger論文[3]中的隨機(jī)算法計算G (V,Ε)中的最小支撐森林,找出 森林中的最大支撐樹F,用T(V1,El)來表示。B3.設(shè)V2 = V-Vl,r = C2*logn(C2是大于1的常量,η是V中點的數(shù)目),El = El,進(jìn)行如下操作對于V2中的一個點ρ,找到與ρ相距r所有點,存入點集R中對于R中的每個點q,將(p,q)加入El中,轉(zhuǎn)步驟①,直至所有的點ρ都已經(jīng)考慮 到。Β4.用[3]中的隨機(jī)算法計算Gl (V,El)中的最小支撐森林F,如果F中只有一棵 樹Tl,則輸出Tl并結(jié)束;否則r = 2打,轉(zhuǎn)B3中的步驟①。
算法3 (局部優(yōu)化)Cl.從TML表形成三角形網(wǎng)格的邊表EL。C2.對邊表EL中的每一條非邊界邊,做步驟C3。C3.取出以此邊為鄰接條件的兩個相鄰三角形,構(gòu)成一個四邊形如果這個四邊形 是凹的,則不做任何處理。如果這個四邊形是凸的,則計算兩個三角形的最小內(nèi)角α , 交換對角線計算出兩個新的三角形的最小內(nèi)角α 2,如果α2> α 則以交換對角線所 得到的兩個新三角形替換原來的兩個三角形,并按新的三角形修改TML,交換邊計數(shù)變量 interchaged-edge 力口 1 (初始值為 0)。C4.如果 interchaged-edge = 0,則結(jié)束,否則,轉(zhuǎn)步驟 Cl。從上述過程可以發(fā)現(xiàn)本發(fā)明具有以下優(yōu)點1、本發(fā)明將復(fù)雜的三角剖分過程劃分成三個易于實現(xiàn)的算法,能夠有效的解決三 角剖分過程難于在實際需求中應(yīng)用的難題;2、算法2采用的是線性時間的隨即算法,在易于實現(xiàn)的同時,也能夠有效的提高 算法的效率。因此本發(fā)明就三角剖分難于在實際中應(yīng)用的問題,提出一種新的三角剖分方法, 將三角剖分過程分成三個不同的階段,分別用三個不同的算法實現(xiàn),能夠有效降低算法實 現(xiàn)的難度。
權(quán)利要求
1.一種三角剖分方法,其特征在于包含三個步驟a)用隨機(jī)算法來實現(xiàn)歐幾里德最小支撐樹;b)在歐幾里德最小支撐樹中每次加入一條邊,構(gòu)成三角形網(wǎng)絡(luò),直到最后一條邊加入 為止;c)使用最大最小角準(zhǔn)則,通過局部變換,得到所需要的最佳三角剖分。
2.根據(jù)權(quán)利要求1所述的一種三角剖分方法,其特征在于,其中步驟a)中使用了線 性時間的隨機(jī)算法來實現(xiàn)歐幾里德最小支撐樹。
全文摘要
一種三角剖分方法。將三角剖分過程分成三個不同的階段,分別由三個相對簡單的算法來實現(xiàn)。首先用隨機(jī)算法來實現(xiàn)歐幾里德最小支撐樹;然后在歐幾里德最小支撐樹中每次加入一條邊,構(gòu)成三角形網(wǎng)絡(luò),直到最后一條邊加入為止;最后,使用最大最小角準(zhǔn)則,通過局部變換,得到所需要的最佳三角剖分。
文檔編號G06F17/50GK102142043SQ20101010483
公開日2011年8月3日 申請日期2010年2月3日 優(yōu)先權(quán)日2010年2月3日
發(fā)明者余楚才 申請人:上海華宇電子工程有限公司