吳麗娟, 李 博, ABEYSINGHE ARACHCHIGE Sasikala Sewwandi, 張心慈
(1. 沈陽師范大學 物理科學與技術學院, 沈陽 110034; 2. Faculty of Social Sciences and Languages, Sabaragamuwa Uniwersity, Sri Lan Ka 70140)
曲線、曲面技術是計算機圖形學研究的重要內容之一,曲面拼接技術在工程設計中更具有廣泛的應用,包括衛(wèi)星軌道、導彈彈道、人體輪廓、汽車和飛機的外形都需要用曲線來模擬。
B樣條理論早在1946年由舍恩伯格提出,1972年,德布爾與考克斯總結給出了關于B樣條的一套標準方法,即遞推定義,由于遞推定義的性質,使得計算非常方便且穩(wěn)定,以此為基礎,1974年美國通用汽車制造公司的戈登和里森費爾德將B樣條理論應用于形狀描述,提出了曲線曲面設計的B樣條方法。
多年來,國內許多學者也一直致力于CAGD領域的理論及應用研究,在國內外學者的研究下產生了多種曲面拼接的方法,Kuriyama提出給定N-1條邊界曲線構造任意N邊域曲面的方法,本文在此基礎上給定N-1條邊界曲線求出跨界導矢方法生成B樣條過渡曲面,進行曲面拼接,構造的曲面與周圍曲面處處c1連續(xù)[6-9]。
(1)
式中Pi是控制多邊形的頂點集,Ni,k(t)是定義在節(jié)點矢量T上的k次B樣條基函數(shù),表示第i個k次(k+1)階B樣條基函數(shù)。分別由節(jié)點向量U和V按de Boor-Cox遞推公式推導得出。已知控制點生成的B樣條曲線如圖1所示。
圖1 B樣條曲線的生成Fig.1 Generation of B-spline curve
(2)
式中給定2個方向的控制頂點網格u和v以及它們各自的節(jié)點向量u=[u0,u1,…,up+p]和v=[v0,v1,…,un+q],節(jié)點矢量U中含有m+1個節(jié)點,節(jié)點矢量V中含有n+1個節(jié)點,此時構成一張控制網格稱為B樣條曲面的特征網格。Ni,p(u)和Nj,q(v)是節(jié)點向量U和V按de Boor-Cox遞推公式決定的B樣條混合函數(shù)。
已知36個控制點,通過給定的控制點生成成一個6×6的網格,對B樣條曲面基函數(shù)進行算法設計,分別從u向和v向進行賦值,讓控制點與基函數(shù)相乘求和,從而生成對應的型值點,連接型值點,通過編程進行循環(huán)操作,從而生成3次B樣條曲面[10-13]。
3次均勻B樣條曲面節(jié)點矢量U、V滿足條件:
3次準均勻B樣條曲面節(jié)點矢量U、V滿足條件:
生成的均勻B樣條曲面、準均勻B樣條曲面如圖2、圖3所示。
圖2 均勻B樣條曲面Fig.2 Uniform B-spline surface
圖3 準均勻B樣條曲面Fig.3 Quasi-uniform B-spline surface
通過給定的控制點構建3片待拼接B樣條曲面,求出帶拼接曲面邊界曲線上的型值點,通過反算生成控制點,進而生成跨界曲線;定義跨界曲線,求出跨界曲線的跨界導矢;根據(jù)映射和約束條件生成拼合曲面,進行B樣條曲面拼接。系統(tǒng)設計流程圖,如圖4所示。
設置控制點,構建3片待拼接B樣條曲面→根據(jù)邊界曲線上的型值點反算控制點→生成跨界曲 線→求出跨界曲線的跨界導矢→根據(jù)映射和約束條件,定義拼接曲面→生成拼接曲 面
圖4系統(tǒng)設計流程圖
Fig.4 Systemdesignflowchart
2.2.1 B樣條曲面拼接算法的設計
令N邊域曲面的參數(shù)域Ω是R2空間中一個單位正N邊形,其中心在原點O處,邊數(shù)為N,頂點記為Vi(i=0,1,…,n)。
對于單位正多邊形,任意j條邊記Ej(s)=(1-s)Vi+sVi,s∈[0,1],參數(shù)域Ω中任意一點V到邊Ej的距離根據(jù)歐幾里得標量積公式可得:
(7)
式中:Zj是邊是邊Ej-1和Ej+1延長線交點。
在參數(shù)域Ω中,任意一點V的坐標為:
(8)
定義B樣條曲線qj(t)為給定的N邊域曲面的第j條跨界曲線,rj(t)(j=0,1,…,n-2),t∈[0,1]為其跨界導矢,則定義差值于跨界曲線qj(u)和qj-1(v)及其相應跨界導矢量rj(u)和rj-1(v)的映射Pi為:
定義插值于跨界曲線qi(t)及其跨界導矢rj(t)(t=0,1,…,n),t∈[0,1]的N邊域曲面具有如下形式:
由上式可知,N邊域曲面插值于N-1條邊界曲線及其跨界導矢,整體c1連續(xù)。
2.2.2 構建跨界B樣條曲線
通過B樣條待拼接曲面的構建,可以已知邊界曲線上的型值點列Ti(i=1,2,…,n),從而反算控制點Vi=(i=1,2,…,n+2) 算法如下:
3次均勻B樣條曲線的矩陣表示:
(12)
則曲線的首點為
(13)
曲線的末點為
Tn=Vn+2
(14)
由式(12)~式(14)可得,預求的頂點數(shù)為N+2,而方程數(shù)僅為N,尚需補充2個適當?shù)倪吔鐥l件:
首端切矢
(15)
末端切矢
(16)
解式(13)~式(16)方程式可得全部控制點Vi。
由公式1.1得跨界曲線:
(17)
2.2.3 求跨界B樣條曲線的跨界導矢
想要得到的曲面處處c1連續(xù),主要在于對邊界曲線的基函數(shù)求一階導數(shù),即由B樣條曲線基函數(shù)可得:
由此得到矩形域曲面的跨界曲線的跨界導矢:
(19)
圖5 N邊域曲面的跨界曲線及其跨界導矢Fig.5 N-sided surfacetransboundary curve and its transboundary vector
由此已知3條跨界曲線f1(u)f2(u)和f3(v)及其跨界導矢g1(u)g2(u)和g3(v),假設所有的跨界曲線及其跨界導矢都定義于區(qū)間參數(shù)[0,1]。矩形域曲面的跨界曲線的跨界導矢如圖5所示。
2.2.4 構造拼接曲面
則由公式(9)定義差值于跨界曲線及其相應跨界導矢映射,可得插值于跨界曲線f1(u)f3(v)并且定義于參數(shù)域[0,1]*[0,1]的曲面:
(20)
插值于跨界曲線f2(u)和f3(v)及其跨界導矢g2(u)和g3(v)并且定義于參數(shù)域[0,1]*[0,1]上的矩形域曲面:
(21)
定義過渡曲面,參數(shù)區(qū)間[0,1]*[0,1],需滿足的約束條件:
可得拼接曲面定義:
G(u,0)=(v-1)2(2v+1)F1(u,v)+v2(3-2v)F2(u,v)
(24)
由此可知,構建的拼接曲面G(u,v)插值于3條給定跨界曲線f1(u)、f2(u)和f3(v)及其跨界導矢g1(u)、g2(u)和g3(v),曲面整體c1連續(xù)。帶拼接曲面和拼接后的曲面如圖7、圖8。
圖6 待拼接曲面Fig.6 Surface to be spliced
圖7 拼接后的曲面Fig.7 Surface after splicing
通過上述內容可知,應用給定N-1條邊界曲線的方法實現(xiàn)生成的拼合曲面處處c1連續(xù),與c1連續(xù)相比更加平滑,同時用此方法構造曲面的優(yōu)點在于給定的邊界曲線及其跨界導矢可以是任意的B樣條曲線,同時給定的跨界導矢可以相互獨立,不需滿足各種約束條件,運用本方法可以精確地表示3次規(guī)則曲線曲面,從而能用統(tǒng)一的數(shù)學形式表示規(guī)則曲面和自由曲面,能夠更容易地控制和實現(xiàn)曲線曲面形狀[14-18]。