本發(fā)明屬于海洋遙感監(jiān)測(cè)技術(shù)領(lǐng)域,具體涉及艦船與尾跡的網(wǎng)格模型的融合與優(yōu)化方法。
背景技術(shù):
三角形面元網(wǎng)格常用于數(shù)值建模,廣泛應(yīng)用于計(jì)算流體力學(xué)、計(jì)算電磁學(xué)等眾多領(lǐng)域。單一模型的三角網(wǎng)格建模已實(shí)現(xiàn)工程化,從網(wǎng)格的生成到優(yōu)化存在大量成熟軟件。但是,在某些領(lǐng)域往往需要將任意兩個(gè)或多個(gè)網(wǎng)格模型進(jìn)行拼接、融合,生成一體化網(wǎng)格以便后續(xù)數(shù)值計(jì)算。不同模型的拼接處一般是物理場(chǎng)的耦合區(qū),因此,為保證計(jì)算的精度和穩(wěn)定性,往往對(duì)網(wǎng)格拼接處的單元形狀有較高的要求。
三角形面元網(wǎng)格的融合拼接方法主要有三類(lèi)[1]:第一類(lèi)是基于裁剪的方法,即利用一片網(wǎng)格去裁剪另外一片網(wǎng)格,然后在公共邊界上生成新的三角形單元,將兩個(gè)模型的網(wǎng)格融合在一起,如TurK G和Levoy M等的算法[2]。該方法的缺點(diǎn)是因?yàn)椴眉?,公共邊界處?huì)產(chǎn)生大量的細(xì)小三角形,并且該方法只利用了重疊區(qū)一片網(wǎng)格中的頂點(diǎn),另一片網(wǎng)格上的頂點(diǎn)則被完全拋棄。因此對(duì)于存在大交疊區(qū)域的網(wǎng)格而言,無(wú)法同時(shí)利用兩片網(wǎng)格的重疊區(qū)進(jìn)行頂點(diǎn)校正。第二類(lèi)是基于補(bǔ)洞的拼接方法,即首先將重疊區(qū)的三角形全部刪掉,然后通過(guò)補(bǔ)洞的方法重新生成重疊區(qū)的三角形。如Ruding L提出的先去除N-環(huán)相交區(qū)再重建交疊區(qū)的方法[3]。這種方法對(duì)于交疊區(qū)較小的的網(wǎng)格非常適用,但對(duì)于存在大交疊區(qū)域的網(wǎng)格,雖然可通過(guò)徑向基函數(shù)重新生成重疊區(qū)頂點(diǎn),但新生成的頂點(diǎn)很難反映模型的實(shí)際形狀。第三類(lèi)是基于微分網(wǎng)格變形的方法,如利用泊松方程[4]、拉普拉斯坐標(biāo)[5]等方法。這類(lèi)方法需要指定一個(gè)準(zhǔn)確的邊界,邊界的定位精度對(duì)融合結(jié)果影響很大;但是大范圍復(fù)雜交疊區(qū)的拼接往往難以確定精確的融合邊界。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種高效、精準(zhǔn)的艦船與尾跡三角網(wǎng)格模型的融合與優(yōu)化方法。
本發(fā)明提出的艦船與尾跡三角網(wǎng)格模型的融合與優(yōu)化方法,基于三角形求交,散亂點(diǎn)云Delaunay剖分和三角面元內(nèi)角控制;涉及計(jì)算流體力學(xué)和計(jì)算電磁學(xué)技術(shù),具體步驟如下:
(一)利用對(duì)艦船與尾跡模型的先驗(yàn)知識(shí),分別確定艦船模型與尾跡模型的交疊區(qū)域;
(二)求取交疊區(qū)域艦船模型與尾跡模型中三角面元的交點(diǎn);
(三)剖分三角網(wǎng)格交疊區(qū)域每個(gè)三角面元上的散亂點(diǎn),得到交疊區(qū)域新的網(wǎng)格結(jié)構(gòu),即初始網(wǎng)格融合模型;
(四)消除畸形三角面元,優(yōu)化網(wǎng)格模型;即在實(shí)現(xiàn)任意兩個(gè)三角網(wǎng)格的初步融合后,控制構(gòu)成網(wǎng)格的三角面元的內(nèi)角,從而優(yōu)化融合過(guò)程因剖分所產(chǎn)生的畸形三角面元。
定義1 對(duì)于一個(gè)空間三角網(wǎng)格,可以用一個(gè)三元組集合來(lái)描述,其中表示頂點(diǎn)集合,表示邊集合,表示三角形集合。
定義2 三角網(wǎng)格中的畸形面元:一個(gè)或兩個(gè)內(nèi)角小于閾值為的三角形 (工程中一般取=15°),小于的內(nèi)角稱(chēng)作病態(tài)角。
定義3 兩個(gè)網(wǎng)格模型的拼接與融合:拼接指對(duì)兩個(gè)網(wǎng)格模型的網(wǎng)格數(shù)據(jù)簡(jiǎn)單地合并,三角形頂點(diǎn)構(gòu)成和三角面片間的拓?fù)潢P(guān)系不變;融合是指當(dāng)兩個(gè)網(wǎng)格模型在三維空間上相交時(shí),將二者的網(wǎng)格數(shù)據(jù)重新編排為一個(gè)網(wǎng)格體,頂點(diǎn)數(shù)量、編號(hào)和三角面片的拓?fù)潢P(guān)系相應(yīng)改變。
下面對(duì)各步驟的具體細(xì)節(jié)分別介紹如下:
(一)確定艦船模型與尾跡模型的交疊區(qū)域,具體流程為:
(1)船體的相交區(qū)域?yàn)榇w的相交區(qū)域?yàn)榇瑐?cè)的三角網(wǎng)格。
(2)海面的相交區(qū)域?yàn)榻M成船底部的一圈點(diǎn),由于他們z坐標(biāo)值接近,忽略這圈點(diǎn)的z坐標(biāo),將它們近似看成二維點(diǎn)。依次連接這些點(diǎn)構(gòu)成多邊形,稱(chēng)為船底多邊形??s放船底多邊形,分別得到一大一小兩個(gè)相似的多邊形。裁剪坐標(biāo)在兩多邊形之間的海面部分,用來(lái)進(jìn)行精確融合。
(3)保留非相交區(qū)域的網(wǎng)格結(jié)構(gòu)。
(二)求取兩個(gè)網(wǎng)格模型交疊區(qū)域的交點(diǎn),具體流程為:
將兩個(gè)三角網(wǎng)格模型分別記為,,融合后的整體三角網(wǎng)格記為。三角網(wǎng)格,有個(gè)三角面元,其第個(gè)三角面元記為;三角網(wǎng)格,有個(gè)三角面元,其第個(gè)三角面元記為。
(1)兩個(gè)三角形的交點(diǎn)的求取方法
空間兩個(gè)三角形有相離、相交和相切三種位置關(guān)系。若與是交疊的,則需要分別考慮和的網(wǎng)格結(jié)構(gòu)變化。因空間兩個(gè)三角形的位置關(guān)系又可以分為共面和異面兩種,故在求取兩個(gè)三角形的交點(diǎn)時(shí)分情況討論。
1)共面:計(jì)算的三條邊與三條邊的交點(diǎn),若有交點(diǎn),則交點(diǎn)在兩個(gè)三角形的邊上或頂點(diǎn)上。
2)異面:首先分別計(jì)算的三條邊與的交點(diǎn),若有交點(diǎn),則交點(diǎn)在的頂點(diǎn)上、邊上或內(nèi)部,并向交點(diǎn)集合中添加;其次分別計(jì)算的三條邊與的交點(diǎn),若有交點(diǎn),則交點(diǎn)在的頂點(diǎn)上、邊上或內(nèi)部,并向交點(diǎn)集合中添加。
(2)單個(gè)三角面元與復(fù)雜網(wǎng)格模型的交點(diǎn)求取方法
按照上述流程(1)中方法求取該單個(gè)三角面元與復(fù)雜網(wǎng)格模型中每一個(gè)三角面元的交點(diǎn),若有交點(diǎn),則向交點(diǎn)集合中添加。
(3)兩個(gè)復(fù)雜網(wǎng)格模型的交點(diǎn)求取方法
按照上述流程(2)中方法,判斷三角網(wǎng)格上的每一個(gè)三角面元,與構(gòu)成三角網(wǎng)格的全部三角面元的相交情況,若兩個(gè)三角面元是相交的,則計(jì)算并記錄交點(diǎn)。三角網(wǎng)格上的第個(gè)三角面元相應(yīng)會(huì)有一個(gè)交點(diǎn)集,記為。里所有的點(diǎn)都滿(mǎn)足三角形的方程,即所有交點(diǎn)都只在三角面元內(nèi),而不會(huì)在其他三角面元內(nèi)。同時(shí),將這個(gè)三角形的三個(gè)頂點(diǎn)和新增交點(diǎn)集構(gòu)成的點(diǎn)集記為。
遍歷網(wǎng)格中所有三角面元之后,再考慮網(wǎng)格的每一個(gè)三角面元,判斷上每一個(gè)三角面元是否與的上的三角面元相交。通過(guò)相同的算法來(lái)判斷,最后得到的第個(gè)三角面元相應(yīng)的交點(diǎn)集以及相應(yīng)有。
(三)散亂點(diǎn)云的二維Delaunay剖分,具體流程為:
(1)剖分:網(wǎng)格融合過(guò)程中的散亂點(diǎn)云剖分,使用經(jīng)典的Delaunay剖分。剖分分2步完成:首先,將同一平面上的所有散亂點(diǎn)繞定軸r,以α角逆時(shí)針旋轉(zhuǎn)到xoy平面上。其中,定軸r是三維點(diǎn)云原來(lái)所在的平面M與xoy平面的交線,旋轉(zhuǎn)角α是平面M與xoy平面所成的二面角。其次,對(duì)旋轉(zhuǎn)后的散亂點(diǎn)進(jìn)行二維Delaunay剖分。由于散亂點(diǎn)的相對(duì)位置不變,可以忽略三維點(diǎn)z坐標(biāo)的影響。xoy平面上散亂點(diǎn)的網(wǎng)格結(jié)構(gòu)即是原三維散亂點(diǎn)的網(wǎng)格結(jié)構(gòu)。
(2)在步驟(二)中已經(jīng)求得兩個(gè)復(fù)雜模型里所有三角面元上的交點(diǎn)集,按照流程(1)剖分方法所述,分別重新剖分所有三角面元所在區(qū)域,得到新的網(wǎng)格結(jié)構(gòu)。
其中交點(diǎn)集分兩種情況討論:
1)若交點(diǎn)集為空,即說(shuō)明該三角面元與另一模型中所有的三角面元都未相交,則該三角面元所在區(qū)域的網(wǎng)格結(jié)構(gòu)不改變,只需直接將該三角面元信息復(fù)制到的面元列表中。
2)若交點(diǎn)集非空,即說(shuō)明該三角面元所在區(qū)域的網(wǎng)格結(jié)構(gòu)受到了另一網(wǎng)格的影響,則剖分對(duì)應(yīng)的點(diǎn)集,得到該三角面元區(qū)域新的三角網(wǎng)格結(jié)構(gòu),并添加到的面元列表中。
(四)優(yōu)化融合過(guò)程因Delaunay剖分所產(chǎn)生的畸形三角面元,具體流程為:
以等邊三角形為標(biāo)準(zhǔn)定義三角形正則度如下:
(1)
其中,,,分別是三角形的三個(gè)內(nèi)角。三角形內(nèi)角只需知道一個(gè),即可計(jì)算正則度:
(2)
其中,是某個(gè)內(nèi)角,從0到π變化時(shí)三角形的正則度如表1所示。
根據(jù)三角形的正則度的定義,定義三角網(wǎng)格的品質(zhì)因子如下:
(3)
其中,是三角網(wǎng)格模型中三角面元的總個(gè)數(shù),是第個(gè)三角形的一個(gè)內(nèi)角,即網(wǎng)格中所有三角面元的正則度決定了網(wǎng)格的品質(zhì)因子。品質(zhì)因子越大,說(shuō)明網(wǎng)格中三角面元的正則度越大、越接近等邊三角形,網(wǎng)格的質(zhì)量越高。
本發(fā)明方法能快速高效地融合艦船與尾跡網(wǎng)格模型,并對(duì)融合產(chǎn)生的畸形三角形進(jìn)行優(yōu)化。該方法的重要優(yōu)點(diǎn)是能夠適應(yīng)不同的艦船與其尾跡網(wǎng)格模型,而無(wú)需附加條件。
附圖說(shuō)明
圖1是船底多邊形。
圖2是三維點(diǎn)云的旋轉(zhuǎn):r是旋轉(zhuǎn)軸,α是旋轉(zhuǎn)角。
圖3是網(wǎng)格優(yōu)化前后對(duì)比示意圖。
圖4是畸形三角面元。
圖5是兩個(gè)共面三角形的融合。其中,(a)綠色三角形沒(méi)有頂點(diǎn)紅色三角形上,(b)綠色三角形有1個(gè)頂點(diǎn)在紅色三角形上,(c)綠色三角形有2個(gè)頂點(diǎn)在紅色三角形上,(d)綠色三角形有3個(gè)頂點(diǎn)在紅色三角形上。
圖6是兩個(gè)異面三角形的融合。其中,(a)面面相交,(b)僅邊面相交,(c)僅點(diǎn)面相交,(d)僅邊邊相交。
圖7是封閉球面和粗糙面的融合結(jié)果。
圖8為十字交叉面和圓柱側(cè)面的融合結(jié)果。
圖9為艦船網(wǎng)格模型與尾跡網(wǎng)格模型的融合結(jié)果。其中,(a) 艦船與海面,(b)細(xì)節(jié)放大圖。
圖10為二維網(wǎng)格優(yōu)化。其中,(a)為為存在多個(gè)畸形三角面元的平面網(wǎng)格,優(yōu)化前Q=0.331,(b) 本文算法優(yōu)化后的結(jié)果,優(yōu)化后Q=0.718。
圖11復(fù)雜模型優(yōu)化前后的結(jié)果對(duì)比圖。其中,(a) 優(yōu)化前Q=0.609,(b)優(yōu)化后Q=0.785,(c)優(yōu)化前Q=0.648,(d)優(yōu)化后Q=0.793。
圖12艦船與尾跡的網(wǎng)格優(yōu)化前后的對(duì)比圖。其中,(a) 優(yōu)化前Q=0.610,(b)優(yōu)化后Q=0.800,(c) 優(yōu)化前后的整體網(wǎng)格。
圖13艦船與尾跡模型優(yōu)化前后內(nèi)角在0~180°的分布圖。
圖14為艦船與尾跡的網(wǎng)格融合優(yōu)化后的整體圖。
具體實(shí)施方式
求取海面的相交區(qū)域的方法海面的相交區(qū)域?yàn)榻M成船底部的一圈點(diǎn),由于他們z坐標(biāo)值接近,忽略這圈點(diǎn)的z坐標(biāo),將它們近似看成二維點(diǎn)。依次連接這些點(diǎn)構(gòu)成多邊形,稱(chēng)為船底多邊形,如圖1灰色實(shí)線所示。縮放船底多邊形,分別得到一大一小兩個(gè)相似的多邊形,如圖1中黑色實(shí)線(大)和黑色虛線(小)所示。裁剪坐標(biāo)在兩多邊形之間的海面部分,用來(lái)進(jìn)行精確融合。
圖2是三維點(diǎn)云的旋轉(zhuǎn):r是旋轉(zhuǎn)軸,α是旋轉(zhuǎn)角。剖分分2步完成:首先,將同一平面上的所有散亂點(diǎn)繞定軸r,以α角逆時(shí)針旋轉(zhuǎn)到xoy平面上。其中,定軸r是三維點(diǎn)云原來(lái)所在的平面M與xoy平面的交線,旋轉(zhuǎn)角α是平面M與xoy平面所成的二面角。其次,對(duì)旋轉(zhuǎn)后的散亂點(diǎn)進(jìn)行二維Delaunay剖分。由于散亂點(diǎn)的相對(duì)位置不變,可以忽略三維點(diǎn)z坐標(biāo)的影響。xoy平面上散亂點(diǎn)的網(wǎng)格結(jié)構(gòu)即是原三維散亂點(diǎn)的網(wǎng)格結(jié)構(gòu)。
圖3是融合后模型的網(wǎng)格優(yōu)化,即刪除畸形三角面元的圖解。圖3(a)是由三角面元f1~f7組成的網(wǎng)格,v1~v8是構(gòu)成該網(wǎng)格結(jié)構(gòu)的頂點(diǎn)。首先判定f4為網(wǎng)格中的畸形三角形,原因是f4中v1所張的角小于15°。第二步,如果e1,e2,e3是f4的三條邊,v1所對(duì)的邊為e3,則取e3的中點(diǎn),設(shè)其為vNew。最后,去除原網(wǎng)格的所有三角面元,將其頂點(diǎn)v1~v8依次與vNew相連,得到新的網(wǎng)格結(jié)構(gòu),如圖3(b)所示。
設(shè)空間存在任意兩個(gè)相交的三角形1和2,則存在共面相交和異面相交兩種情況。圖5(a)~(d)分別驗(yàn)證了共面相交的四種情形,并且給出了融合結(jié)果。按照三角形1(深色)包含三角形2(淺色)頂點(diǎn)數(shù)目的不同分類(lèi),即三角形1包含三角形2零個(gè)頂點(diǎn)、一個(gè)頂點(diǎn)、兩個(gè)頂點(diǎn)、三個(gè)頂點(diǎn):圖5(a)三角形2沒(méi)有頂點(diǎn)在三角形1上,但是仍然是相互交疊的情況;圖5(b)是三角形2有1個(gè)頂點(diǎn)在三角形1上的情況;圖5(c)是三角形2有兩個(gè)頂點(diǎn)在三角形1上的情況;圖5(d)是三角形2有三個(gè)頂點(diǎn)在三角形1上的情況。
圖6(a) ~ (d) 驗(yàn)證了異面相交的四種情形,按照點(diǎn)線面位置關(guān)系將兩個(gè)異面三角形的交疊分為一種情形和三種特殊情形:圖6(a)是異面相交里最普通的面面相交。(b)~(d)是三種特殊情形:(b)是只存在邊和面相交,即三角形2(淺色)有一條邊在三角形1(深色)上且交疊的情況;圖6(c)是只存在點(diǎn)與面相交;圖6(d)是只存在邊與邊相交。
圖7為封閉球面和粗糙面的融合結(jié)果,半徑3m的球面,粗糙面面積10*10 m2,代表復(fù)雜模型中封閉曲面和隨機(jī)粗糙面的融合。
圖8為十字交叉面和圓柱側(cè)面,代表復(fù)雜模型中二面角和開(kāi)曲面的融合。
圖9為艦船網(wǎng)格模型與尾跡網(wǎng)格模型,融合后的結(jié)果如圖9(a);圖9(b)模型的融合細(xì)節(jié)情況。
為提高數(shù)值計(jì)算精度,降低運(yùn)算量,需要對(duì)融合后的網(wǎng)格進(jìn)行優(yōu)化,即首先去除畸形三角面元,然后對(duì)網(wǎng)格面元和節(jié)點(diǎn)重新編碼。文中選取的優(yōu)化閾值α=15°,即只要一個(gè)內(nèi)角小于15°,該三角面元即判定為畸形。
圖10左圖為存在多個(gè)畸形三角面元的平面網(wǎng)格(a),右圖為本文算法優(yōu)化后的結(jié)果(b)??梢?jiàn)優(yōu)化后網(wǎng)格模型不再有畸形三角面元,優(yōu)化前網(wǎng)格的品質(zhì)因子為0.331,優(yōu)化后為0.718。
圖11(a)-(d)是圖7和圖8中模型優(yōu)化前后的細(xì)節(jié)對(duì)比,放大后可見(jiàn)網(wǎng)格出現(xiàn)了少許幾何形變。由于本發(fā)明中的優(yōu)化過(guò)程實(shí)際是一個(gè)去采樣過(guò)程,會(huì)丟失某些信息。二維網(wǎng)格模型的去采樣并不會(huì)影響模型的幾何輪廓;但對(duì)于三維網(wǎng)格,過(guò)度的去采樣會(huì)丟失模型的幾何特征。因此,優(yōu)化角度的選取要根據(jù)工程計(jì)算的需求和融合區(qū)的幾何特征綜合考慮。
圖12(a)-(c)分別是艦船與海面的網(wǎng)格優(yōu)化前后的結(jié)果對(duì)比,可見(jiàn)融合區(qū)所有畸形面元已經(jīng)去除。(a)是優(yōu)化區(qū)域,優(yōu)化前網(wǎng)格的品質(zhì)因子0.610,優(yōu)化后網(wǎng)格的品質(zhì)因子為0.800。實(shí)際工程問(wèn)題中,會(huì)因?yàn)椴煌蟛捎貌煌呐灤W(wǎng)格模型,所以船身非融合區(qū)域的網(wǎng)格文中直接保留,只優(yōu)化由于融合產(chǎn)生的畸形三角面元。
圖13是圖12(a)中截取艦船與海面的融合區(qū)域網(wǎng)格優(yōu)化前后三角形內(nèi)角在0~180°的分布情況,優(yōu)化前(深色部分)內(nèi)角在0~15°大量分布,在優(yōu)化后(淺色部分)已經(jīng)全部消除,由于原始海面網(wǎng)格采用的等腰直角三角面元,因此內(nèi)角在45°和90°分布較多。
圖14是艦船與尾跡的網(wǎng)格融合優(yōu)化后的整體圖。
表1 正則度隨變化規(guī)律
。
參考文獻(xiàn):
[1] Zou Bei-ji, Zhou Hao-yu, Wang Lei, et al.3D mesh merging and stitching with large overlaps[J]. Acta Electronica Sinica, 2012, 40(5):1005-1010.
[2] TurK G, Levoy M. Zippered polygon meshes from range images[A]. Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques[C]//New York:ACM New York,1994:311-318.
[3] Ruding L, Jean-Philippe P, Alexei M,et al. Merging enriched finite element triangle meshes for fast prototyping of alternate solutions in the context of industrial maintenance[J]. CAD Computer Aided Design,2010,42(8):670-681.
[4] Yu Y,Zhou K,Xu D,et al. Mesh editing with poisson-based gradient field manipulation[J]. ACM Transactions on Graphics,2004,23(3):644-651.。