薛 翔,周來水
(南京航空航天大學 機電學院,江蘇 南京210016)
相鄰曲面的連續拼接對于自由曲面造型[1]非常重要,因此CAD 和CAGD 領域學者對曲面拼接問題進行了大量深入的研究,例如代數曲面間拼接[2,3]、Bezier曲面間拼接[4,5]、NURBS 曲 面 間 拼 接[6,7]、以 及B 樣 條 曲 面 間 拼接[8,9]。由于B樣條曲面被廣泛用于產品設計中的自由曲面造型,而且經常需要通過局部拼接來得到外形更靈活的B樣條組合曲面,因此B 樣條曲面間的局部連續拼接在產品設計時就顯得更為重要。
在實際拼接時,相鄰B 樣條曲面在拼接邊界上經常具有不同的邊界定義,所以無法直接進行連續拼接。通常采用曲面細分來恢復拼接邊界上的一致性,但B 樣條曲面在細分時只能加入整行、整列的控制點,其中大多數控制點對曲面拼接毫無用處,只會造成拼接后曲面上的控制點冗余。相對于B樣條曲面細分時控制點的成批加入,T 樣條曲面[10]在細分時可以更靈活地加入局部控制點。
因此,針對B樣條曲面在局部拼接時由于曲面細分而加入冗余控制點的問題,本文提出一種更有效的T樣條曲面局部拼接法。該方法利用T樣條曲面的局部均勻細分算法,將兩張B樣條曲面局部拼接為一張精簡的T樣條組合曲面,并通過實例驗證了該拼接法優于B樣條曲面細分拼接法。
圖1 T 網格及其T 樣條曲面
任何一張B樣條曲面都可以精確轉換為一張均勻T網格上的全行列T樣條曲面,如圖2所示。轉換后的全行列T樣條曲面在曲面細分時可以加入局部控制點,而轉換前的B樣條曲面在曲面細分時只能加入整行、或者整列的控制點。
圖2 均勻T 網格及其全行列T 樣條曲面
T 樣條曲面通過靈活的細分算法來加入局部控制點,接下來將在T 網格上具體描述其中一種較為簡單的局部均勻細分算法。
給定一個T網格TMi,Bia/Bib/Bic/Bid為其上相鄰4個B樣條函數。如果這些B樣條函數在同一方向上具有相同的支持域,就可在T網格上加入一個新控制點和一個新B樣條函數Bi+1e,如圖3 所示。此時,TMi就被局部均勻細分為TMi+1,Bia/Bib/Bic/Bid也被細分為Bi+1a/Bi+1b/Bi+1c/Bi+1d/Bi+1e。
圖3 T 網格上的局部均勻細分算法
利用局部均勻細分算法,就可在T 網格邊界上加入局部行的控制點。如圖4所示,通過對TM0進行水平方向上的局部均勻細分,可在TM0邊界上加入3行局部控制點,同時將TM0局部均勻細分為TM9。
圖4 T 網格邊界上的局部均勻細分
設兩相鄰B樣條曲面為A 和B ,它們需要沿其公共邊界Ab/Bb實現局部連續拼接,但Ab與Bb具有不同的邊界定義,并且在這兩張曲面的公共邊界上還存在間隙與重疊,如圖5 (a)所示。如果利用B 樣條曲面細分來連續拼接這兩張曲面,則會在拼接后的B 樣條組合曲面上加入不必要的冗余控制點。如圖5 (b)所示,曲面A 在局部拼接時加入了7個控制點,其中4個為冗余控制點,因為它們對曲面拼接沒有任何用處。如果利用T 樣條曲面的局部均勻細分算法來進行連續拼接,在曲面細分時則不加入任何冗余控制點,從而得到一張控制點更少的T 樣條組合曲面。如圖5 (c)所示,曲面A 在局部拼接時加入的3個控制點都不是冗余控制點,因為它們都用于曲面拼接。
圖5 相鄰曲面在局部邊界上的連續拼接
接下來就對基于T 樣條曲面的局部拼接法進行具體描述:
步驟1 先將B樣條曲面A 和B 精確轉換為兩張全行列T 樣條曲面A 和B ,它們分別定義在均勻T 網格uTMA與uTMB上。uTMA的節點距向量為DA/EA,uTMB的節點距向量為DB/EB。拼接邊界Ab與Bb也分別定義在兩個邊界T 網格uTMAb與uTMBb上,其各自節點距向量為DAb/EAb與DBb/EBb。由于uTMAb≠uTMBb,Ab與Bb則定義在不一致的邊界T 網格上,如圖6所示。因此,曲面A和B 無法直接沿其公共邊界Ab/Bb實現連續拼接。
圖6 拼接前不一致的邊界T 網格
步驟2 通過局部均勻細分算法在T 網格邊界上加入局部控制點,不僅可使Ab與Bb重新定義在一致的邊界T網格上,而且還不加入任何冗余控制點。如圖7 所示,通過在uTMA邊界上加入一局部行的控制點,將uTMA局部均勻細分為TMA,就可使Ab與Bb的邊界T 網格重新恢復一致,也即uTM′Ab=uTMBb,其中DAb=DBb和E′Ab=EBb。此時只要重合Ab與Bb的控制點,就可將曲面A 和B沿其局部邊界連續拼接為一張精簡的T 樣條組合曲面,如圖5 (c)所示。
圖7 局部均勻細分后一致的邊界T 網格
本文在VC++與VTK 渲染庫的基礎上實現了基于局部均勻細分的T 樣條曲面局部拼接法,并將其用于車尾部的后圍板曲面造型。圖8 (a)為待拼接的3張相鄰B 樣條曲面A/B/C。由于曲面A 與曲面B 和C 在各自拼接邊界上具有不同的邊界定義,因此這3張曲面無法直接實現局部連續拼接。為得到圖8 (b)中連續拼接后的組合曲面,接下來將利用B樣條曲面細分拼接法與T 樣條曲面局部拼接法分別構建后圍板的曲面模型。
在圖9 (a)中,B樣條曲面A 通過曲面細分使其與曲面B 和C 在拼接邊界上具有一致的邊界條件,從而實現曲面間的連續拼接。但B樣條曲面A 在細分時必須加入兩整行的控制點,總共為40個控制點,其中28 個控制點對曲面拼接沒有任何用處。拼接后的后圍板曲面模型將由一張B樣條組合曲面來描述。
圖8 后圍板曲面模型的構建
圖9 基于曲面細分的后圍板曲面拼接
如果將這3張B 樣條曲面轉換為全行列T 樣條曲面,就可利用局部均勻細分來得到拼接邊界上的一致性,從而將這些曲面局部連續拼接在一起,如圖9 (b)所示。此時只需在全行列T 樣條曲面A 的兩側分別加入兩行局部控制點,一共為12個控制點,這些控制點全部用于曲面拼接,并且只有圖9 (a)中B樣條曲面細分拼接時所加控制點的30%。此時,后圍板曲面模型就可由一張更精簡的T 樣條組合曲面來描述,其上的控制點更少。
本文提出的T 樣條曲面局部拼接法較好地解決了相鄰B樣條曲面在局部拼接時由于曲面細分而加入冗余控制點的問題。該拼接法利用T 樣條曲面的局部均勻細分來實現拼接邊界上的一致性,同時不加入任何冗余控制點,因此在局部拼接后可以得到一張更精簡的組合曲面。最后,通過實例驗證了該拼接法比B 樣條曲面細分拼接法更有效,并且還具有較好的工程應用價值。
[1]SHEN Junhua,SHI Guizhen.Review on the free curves and surfaces modeling theories [J].Information Technology,2013,37 (3):184-187 (in Chinese). [沈俊華,史貴振.自由曲線曲面造型理論發展綜述 [J].信息技術,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).[李云東,張先君.應用PDE方法構造兩個代數曲面拼接 [J].大理學院學報 (自然科學版),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).[李云東,羅靜.兩個代數曲面沿平面截口的光滑拼接[J].成都信息工程學院學報,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).[劉會立,孟慶賢.繞一角點的Bézier三角曲面片的光滑拼接 [J].計算機輔助設計與圖形學學報,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).[胡鋼,張念娟,秦新強,等.帶多形狀參數的三次Bézier曲線曲面的光 滑 拼 接 [J].西 安 理 工 大 學 學 報,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).[楊火根,吳問娣.一類鄰接NURBS 曲面G1 光滑拼接方法[J].南昌大學學報(理科版),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).[吳祿慎,高項清,熊輝,等.改進的NURBS曲面片拼接算法 [J].光學精密工程,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拼接中連接函數性質及其應用[J].計 算 機 輔 助 設 計 與 圖 形 學 學 報,2009,21 (8):1061-1065.]
[9]JIN Xijuan,YAO Jie,FANG Kui.Convexity preserving connection for B-spline surfaces[J].Microcomputer &Its Applications,2011,30 (23):51-53 (in Chinese). [金席卷,姚杰,方逵.B-樣條曲面的保凸拼接 [J].微型機與應用,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 網格上的樣條 [D].合肥:中國科學技術大學,2008:1-130.]