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