薛 翔,周來(lái)水
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京210016)
相鄰曲面的連續(xù)拼接對(duì)于自由曲面造型[1]非常重要,因此CAD 和CAGD 領(lǐng)域?qū)W者對(duì)曲面拼接問(wèn)題進(jìn)行了大量深入的研究,例如代數(shù)曲面間拼接[2,3]、Bezier曲面間拼接[4,5]、NURBS 曲 面 間 拼 接[6,7]、以 及B 樣 條 曲 面 間 拼接[8,9]。由于B樣條曲面被廣泛用于產(chǎn)品設(shè)計(jì)中的自由曲面造型,而且經(jīng)常需要通過(guò)局部拼接來(lái)得到外形更靈活的B樣條組合曲面,因此B 樣條曲面間的局部連續(xù)拼接在產(chǎn)品設(shè)計(jì)時(shí)就顯得更為重要。
在實(shí)際拼接時(shí),相鄰B 樣條曲面在拼接邊界上經(jīng)常具有不同的邊界定義,所以無(wú)法直接進(jìn)行連續(xù)拼接。通常采用曲面細(xì)分來(lái)恢復(fù)拼接邊界上的一致性,但B 樣條曲面在細(xì)分時(shí)只能加入整行、整列的控制點(diǎn),其中大多數(shù)控制點(diǎn)對(duì)曲面拼接毫無(wú)用處,只會(huì)造成拼接后曲面上的控制點(diǎn)冗余。相對(duì)于B樣條曲面細(xì)分時(shí)控制點(diǎn)的成批加入,T 樣條曲面[10]在細(xì)分時(shí)可以更靈活地加入局部控制點(diǎn)。
因此,針對(duì)B樣條曲面在局部拼接時(shí)由于曲面細(xì)分而加入冗余控制點(diǎn)的問(wèn)題,本文提出一種更有效的T樣條曲面局部拼接法。該方法利用T樣條曲面的局部均勻細(xì)分算法,將兩張B樣條曲面局部拼接為一張精簡(jiǎn)的T樣條組合曲面,并通過(guò)實(shí)例驗(yàn)證了該拼接法優(yōu)于B樣條曲面細(xì)分拼接法。
圖1 T 網(wǎng)格及其T 樣條曲面
任何一張B樣條曲面都可以精確轉(zhuǎn)換為一張均勻T網(wǎng)格上的全行列T樣條曲面,如圖2所示。轉(zhuǎn)換后的全行列T樣條曲面在曲面細(xì)分時(shí)可以加入局部控制點(diǎn),而轉(zhuǎn)換前的B樣條曲面在曲面細(xì)分時(shí)只能加入整行、或者整列的控制點(diǎn)。
圖2 均勻T 網(wǎng)格及其全行列T 樣條曲面
T 樣條曲面通過(guò)靈活的細(xì)分算法來(lái)加入局部控制點(diǎn),接下來(lái)將在T 網(wǎng)格上具體描述其中一種較為簡(jiǎn)單的局部均勻細(xì)分算法。
給定一個(gè)T網(wǎng)格TMi,Bia/Bib/Bic/Bid為其上相鄰4個(gè)B樣條函數(shù)。如果這些B樣條函數(shù)在同一方向上具有相同的支持域,就可在T網(wǎng)格上加入一個(gè)新控制點(diǎn)和一個(gè)新B樣條函數(shù)Bi+1e,如圖3 所示。此時(shí),TMi就被局部均勻細(xì)分為T(mén)Mi+1,Bia/Bib/Bic/Bid也被細(xì)分為Bi+1a/Bi+1b/Bi+1c/Bi+1d/Bi+1e。
圖3 T 網(wǎng)格上的局部均勻細(xì)分算法
利用局部均勻細(xì)分算法,就可在T 網(wǎng)格邊界上加入局部行的控制點(diǎn)。如圖4所示,通過(guò)對(duì)TM0進(jìn)行水平方向上的局部均勻細(xì)分,可在TM0邊界上加入3行局部控制點(diǎn),同時(shí)將TM0局部均勻細(xì)分為T(mén)M9。
圖4 T 網(wǎng)格邊界上的局部均勻細(xì)分
設(shè)兩相鄰B樣條曲面為A 和B ,它們需要沿其公共邊界Ab/Bb實(shí)現(xiàn)局部連續(xù)拼接,但Ab與Bb具有不同的邊界定義,并且在這兩張曲面的公共邊界上還存在間隙與重疊,如圖5 (a)所示。如果利用B 樣條曲面細(xì)分來(lái)連續(xù)拼接這兩張曲面,則會(huì)在拼接后的B 樣條組合曲面上加入不必要的冗余控制點(diǎn)。如圖5 (b)所示,曲面A 在局部拼接時(shí)加入了7個(gè)控制點(diǎn),其中4個(gè)為冗余控制點(diǎn),因?yàn)樗鼈儗?duì)曲面拼接沒(méi)有任何用處。如果利用T 樣條曲面的局部均勻細(xì)分算法來(lái)進(jìn)行連續(xù)拼接,在曲面細(xì)分時(shí)則不加入任何冗余控制點(diǎn),從而得到一張控制點(diǎn)更少的T 樣條組合曲面。如圖5 (c)所示,曲面A 在局部拼接時(shí)加入的3個(gè)控制點(diǎn)都不是冗余控制點(diǎn),因?yàn)樗鼈兌加糜谇嫫唇印?/p>
圖5 相鄰曲面在局部邊界上的連續(xù)拼接
接下來(lái)就對(duì)基于T 樣條曲面的局部拼接法進(jìn)行具體描述:
步驟1 先將B樣條曲面A 和B 精確轉(zhuǎn)換為兩張全行列T 樣條曲面A 和B ,它們分別定義在均勻T 網(wǎng)格uTMA與uTMB上。uTMA的節(jié)點(diǎn)距向量為DA/EA,uTMB的節(jié)點(diǎn)距向量為DB/EB。拼接邊界Ab與Bb也分別定義在兩個(gè)邊界T 網(wǎng)格uTMAb與uTMBb上,其各自節(jié)點(diǎn)距向量為DAb/EAb與DBb/EBb。由于uTMAb≠u(mài)TMBb,Ab與Bb則定義在不一致的邊界T 網(wǎng)格上,如圖6所示。因此,曲面A和B 無(wú)法直接沿其公共邊界Ab/Bb實(shí)現(xiàn)連續(xù)拼接。
圖6 拼接前不一致的邊界T 網(wǎng)格
步驟2 通過(guò)局部均勻細(xì)分算法在T 網(wǎng)格邊界上加入局部控制點(diǎn),不僅可使Ab與Bb重新定義在一致的邊界T網(wǎng)格上,而且還不加入任何冗余控制點(diǎn)。如圖7 所示,通過(guò)在uTMA邊界上加入一局部行的控制點(diǎn),將uTMA局部均勻細(xì)分為T(mén)MA,就可使Ab與Bb的邊界T 網(wǎng)格重新恢復(fù)一致,也即uTM′Ab=uTMBb,其中DAb=DBb和E′Ab=EBb。此時(shí)只要重合Ab與Bb的控制點(diǎn),就可將曲面A 和B沿其局部邊界連續(xù)拼接為一張精簡(jiǎn)的T 樣條組合曲面,如圖5 (c)所示。
圖7 局部均勻細(xì)分后一致的邊界T 網(wǎng)格
本文在VC++與VTK 渲染庫(kù)的基礎(chǔ)上實(shí)現(xiàn)了基于局部均勻細(xì)分的T 樣條曲面局部拼接法,并將其用于車(chē)尾部的后圍板曲面造型。圖8 (a)為待拼接的3張相鄰B 樣條曲面A/B/C。由于曲面A 與曲面B 和C 在各自拼接邊界上具有不同的邊界定義,因此這3張曲面無(wú)法直接實(shí)現(xiàn)局部連續(xù)拼接。為得到圖8 (b)中連續(xù)拼接后的組合曲面,接下來(lái)將利用B樣條曲面細(xì)分拼接法與T 樣條曲面局部拼接法分別構(gòu)建后圍板的曲面模型。
在圖9 (a)中,B樣條曲面A 通過(guò)曲面細(xì)分使其與曲面B 和C 在拼接邊界上具有一致的邊界條件,從而實(shí)現(xiàn)曲面間的連續(xù)拼接。但B樣條曲面A 在細(xì)分時(shí)必須加入兩整行的控制點(diǎn),總共為40個(gè)控制點(diǎn),其中28 個(gè)控制點(diǎn)對(duì)曲面拼接沒(méi)有任何用處。拼接后的后圍板曲面模型將由一張B樣條組合曲面來(lái)描述。
圖8 后圍板曲面模型的構(gòu)建
圖9 基于曲面細(xì)分的后圍板曲面拼接
如果將這3張B 樣條曲面轉(zhuǎn)換為全行列T 樣條曲面,就可利用局部均勻細(xì)分來(lái)得到拼接邊界上的一致性,從而將這些曲面局部連續(xù)拼接在一起,如圖9 (b)所示。此時(shí)只需在全行列T 樣條曲面A 的兩側(cè)分別加入兩行局部控制點(diǎn),一共為12個(gè)控制點(diǎn),這些控制點(diǎn)全部用于曲面拼接,并且只有圖9 (a)中B樣條曲面細(xì)分拼接時(shí)所加控制點(diǎn)的30%。此時(shí),后圍板曲面模型就可由一張更精簡(jiǎn)的T 樣條組合曲面來(lái)描述,其上的控制點(diǎn)更少。
本文提出的T 樣條曲面局部拼接法較好地解決了相鄰B樣條曲面在局部拼接時(shí)由于曲面細(xì)分而加入冗余控制點(diǎn)的問(wèn)題。該拼接法利用T 樣條曲面的局部均勻細(xì)分來(lái)實(shí)現(xiàn)拼接邊界上的一致性,同時(shí)不加入任何冗余控制點(diǎn),因此在局部拼接后可以得到一張更精簡(jiǎn)的組合曲面。最后,通過(guò)實(shí)例驗(yàn)證了該拼接法比B 樣條曲面細(xì)分拼接法更有效,并且還具有較好的工程應(yīng)用價(jià)值。
[1]SHEN Junhua,SHI Guizhen.Review on the free curves and surfaces modeling theories [J].Information Technology,2013,37 (3):184-187 (in Chinese). [沈俊華,史貴振.自由曲線(xiàn)曲面造型理論發(fā)展綜述 [J].信息技術(shù),2013,37(3):184-187.]
[2]LI Yundong,ZHANG Xianjun.Blending of two algebraic surfaces by PDE method [J].Journal of DALI University (Natural Science),2010,9 (4):23-25 (in Chinese).[李云東,張先君.應(yīng)用PDE方法構(gòu)造兩個(gè)代數(shù)曲面拼接 [J].大理學(xué)院學(xué)報(bào) (自然科學(xué)版),2010,9 (4):23-25.]
[3]LI Yundong,LUO Jing.Smooth blending of two algebraic surface along planar sections[J].Journal of Chengdu University of Information Technology,2008,23 (3):333-336 (in Chinese).[李云東,羅靜.兩個(gè)代數(shù)曲面沿平面截口的光滑拼接[J].成都信息工程學(xué)院學(xué)報(bào),2008,23 (3):333-336.]
[4]LIU Huili,MENG Qingxian.Smooth connection of triangular Bézier patches with a common vertex [J].Journal of Compu-ter-Aided Design &Computer Graphics,2009,21 (8):1074-1082 (in Chinese).[劉會(huì)立,孟慶賢.繞一角點(diǎn)的Bézier三角曲面片的光滑拼接 [J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2009,21 (8):1074-1082.]
[5]HU Gang,ZHANG Nianjuan,QIN Xinqiang,et al.Research on the smooth splice for cubic Bézier curves and surfaces with multiple shape parameters[J].Journal of Xi’an University of Technology,2009,25 (4):482-486 (in Chinese).[胡鋼,張念娟,秦新強(qiáng),等.帶多形狀參數(shù)的三次Bézier曲線(xiàn)曲面的光 滑 拼 接 [J].西 安 理 工 大 學(xué) 學(xué) 報(bào),2009,25 (4):482-486.]
[6]YANG Huogen,WU Wendi.A method of G1smooth connection between adjacent NURBS surfaces[J].Journal of Nanchang University(Natural Science),2010,32 (2):124-126 (in Chinese).[楊火根,吳問(wèn)娣.一類(lèi)鄰接NURBS 曲面G1 光滑拼接方法[J].南昌大學(xué)學(xué)報(bào)(理科版),2010,32 (2):124-126.]
[7]WU Lushen,GAO Xiangqing,XIONG Hui,et al.Improved curve surface seamless splicing based on NURBS [J].Optics and Precision Engineering,2013,21 (2):431-436 (in Chinese).[吳祿慎,高項(xiàng)清,熊輝,等.改進(jìn)的NURBS曲面片拼接算法 [J].光學(xué)精密工程,2013,21 (2):431-436.]
[8]ZHAO Nailiang,REN Xin,MA Weiyin.Properties and applications of connecting functions for GC1-connected B-spline surfaces[J].Journal of Computer-Aided Design & Computer Graphics,2009,21 (8):1061-1065 (in Chinese).[趙乃良,任歆,馬維銀.B樣條曲面GC1拼接中連接函數(shù)性質(zhì)及其應(yīng)用[J].計(jì) 算 機(jī) 輔 助 設(shè) 計(jì) 與 圖 形 學(xué) 學(xué) 報(bào),2009,21 (8):1061-1065.]
[9]JIN Xijuan,YAO Jie,F(xiàn)ANG Kui.Convexity preserving connection for B-spline surfaces[J].Microcomputer &Its Applications,2011,30 (23):51-53 (in Chinese). [金席卷,姚杰,方逵.B-樣條曲面的保凸拼接 [J].微型機(jī)與應(yīng)用,2011,30 (23):51-53.]
[10]LI Xin.T-splines and splines over T-meshes [D].Hefei:University of Science and Technology of China,2008:1-130(in Chinese). [李新.T 樣條和T 網(wǎng)格上的樣條 [D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),2008:1-130.]