吳麗娟, 張心慈, 任海清, 梁岱立, 黃 堯, 齊維毅
(沈陽師范大學 物理科學與技術學院, 沈陽 110034)
B樣條的概念最初是由Schoenberg于20世紀40年代中提出來的[1-4],60年代末70年代初,Riesenfeld,Coons和Clark等的論著取得了最初的成果;其后10年間,各國學者如Wu,Abel和Greenberg,朱心雄和吳瑞祥等也發表了論文與著作[5-7],對B樣條方法進行了更為廣泛的研究。
當用B樣條曲面構造i階(i=1,2,…,n)連續的4邊曲面或N邊曲面時,要求被插值的跨界導矢之間必須滿足一定的約束條件,跨界導矢不能獨立地給出,約束條件難以滿足[8-10],而Coons曲面是由已知的邊界曲線生成的。
因此,我們將Coons曲面的構造原理與B樣條曲線相結合,構造了一種新的曲面,稱為Coons類混合B樣條曲面,簡稱CNSBS曲面。本文根據邊界曲線和跨界導矢構造過渡的CNSBS曲面。結果顯示,該曲面與周邊B樣條曲面處處C1連續。
1) B樣條曲線方程定義為

(1)

圖1 B樣條曲線Fig.1 B-spline curve
式中:Pi是B樣條曲線的控制頂點;Ni,p(t)是定義在節點空間上的p次B樣條基函數。根據控制頂點生成的B樣條曲線如圖1所示。
2) 由B樣條曲線的定義,可得到B樣條曲面的定義如下:

(2)
定義中Pi,j(i=0,1,…,n;j=0,1,…,m)是B樣條曲面的控制頂點;Ni,p(u)和Nj,q(v)是B樣條基函數。構建的B樣條曲面如圖2所示。

圖2 B樣條曲面Fig.2 B-spline surface
已知Coons曲面的4條邊界曲線分別為P(u,0),P(u,1),P(0,w)和P(1,w),曲面的4個角點分別為P(0,0),P(0,1),P(1,0)和P(1,1)[11]。則插值這4條邊界的Coons曲面的表達式為
Q(u,w)=Q1(u,w)+Q2(u,w)-Q3(u,w)
(3)
式中

(4)
給定控制點,生成4片待拼接的B樣條曲面;根據邊界曲線上的型值點,運用反算算法求出控制點,生成4條邊界曲線,并求出其跨界導矢;運用節點插入算法,求出待生成曲面上的控制頂點;根據求出的控制頂點和基函數生成2個B樣條曲面,并求出表達式;將2張曲面合并成1張曲面,得到拼接后的過渡CNSBS曲面。
2.2.1 構建邊界曲線
已知型值點Pi(i=1,2,…,n),求出控制點Vj(j=1,2,…,n+1,n+2)[12]。具體過程如下:
3次均勻B樣條曲線的矩陣形式為

(5)
根據(5)式可以列出n個求解B樣條曲線控制點的方程組:

(6)
因為所求的控制點個數為(n+2),所以要再補充2個端點條件:
首端切矢

(7)
末端切矢

(8)
求解(6)式~(8)式即可得到全部待求控制點Vj。
根據(1)式B樣條曲線定義可得邊界曲線:

(9)
2.2.2 求跨界導矢
要使過渡曲面與待拼接曲面處處C1連續,關鍵是對邊界B樣條曲線的基函數求導:

(10)
因此可以得到邊界曲線的跨界導矢:

(11)
2.2.3 插入節點
設k次B樣條曲線的控制頂點為P=[P0,P1,…,Pn],在節點區間[ui,ui+1]內插入節點u。
根據節點插入算法:

(12)
其中k=3,r為所插入節點的重復度,令r=0;由此可以求出插值于邊界曲線的過渡曲面的控制頂點Pij和Qij[13-14]。
2.2.4 構建B樣條曲面


(13)


(14)
式中:Bi,3(u)(Bj,3(v)),Bj,2n+1(v)Bi,2n+1(u)是B樣條基函數;Pij(i=0,1,…,N,j=0,1,…,2n+1)Qij(i=0,1,…,2n+1,j=0,1,…,M)是B樣條曲面P(u,v)Q(u,v)的控制頂點;(N+1)(或(M+1))是控制頂點數[15]。
2.2.5 構造拼接曲面
將2張B樣條曲面合并成1張CNSBS曲面,由于2張曲面不能直接相加,需要求出2片曲面所占權重,并滿足約束條件:

(15)
根據Coons曲面的生成原理,得到插值于4條邊界線及其跨界導矢的CNSBS曲面的表達式為

(16)
式中a(u,v)=un+1(1-u)n+1,b(u,v)=vn+1(1-v)n+1,(1-u),u,(1-w)和w都是Coons曲面的線性函數。
得到的待拼接曲面和拼接后的曲面如圖3和圖4所示。

圖3 待拼接的B樣條曲面Fig.3 B-spline surfaces to be spliced

圖4 拼接后的曲面Fig.4 Surface after splicing
通過上述算法設計與實現過程可知,根據4條邊界曲線及其跨界導矢構造過渡曲面的方法,拼接得更加精準,運用C++語言和OpenGL函數進行編程操作,在Visual Studio 2010平臺上進行調試,最終生成的CNSBS曲面整體C1連續。運用此方法拼接的曲面無需滿足跨界導矢之間的約束條件,并且同樣具有B樣條曲面的性質,可以實現曲面形狀的控制。