計(jì)算機(jī)圖形學(xué)電子教案c7課件_第1頁(yè)
計(jì)算機(jī)圖形學(xué)電子教案c7課件_第2頁(yè)
計(jì)算機(jī)圖形學(xué)電子教案c7課件_第3頁(yè)
計(jì)算機(jī)圖形學(xué)電子教案c7課件_第4頁(yè)
計(jì)算機(jī)圖形學(xué)電子教案c7課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章曲線與曲面曲線曲面的計(jì)算機(jī)輔助設(shè)計(jì)源于20世紀(jì)60年代的飛機(jī)和汽車工業(yè)。Ferguson提出用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程;Bézier于提出的以逼近為基礎(chǔ)的曲線曲面設(shè)計(jì)系統(tǒng)UNISURF,此前deCasteljauCAD系統(tǒng)中有同樣的設(shè)計(jì),但因?yàn)楸C艿脑蚨鴽](méi)有公布;1964年Coons提出了一類布爾和形式的曲面;1972deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法;1975Riesenfeld等人研究了非均勻B

Versprille研究了有理B樣條曲線曲面,20世紀(jì)8090Piegl和Tiller等人對(duì)有理B樣條曲線曲面進(jìn)行了深入的研究,并形成非均勻有理B樣條(Non-UniformRationalB-Spline,NURBS);1991年國(guó)際標(biāo)準(zhǔn)組織(ISO)正式頒布了產(chǎn)品數(shù)據(jù)交換的國(guó)際標(biāo)準(zhǔn)STEP,NURBS是工業(yè)產(chǎn)品幾何定義唯一的一種自由型曲線曲面。曲線的表示形式7.1曲線曲面基礎(chǔ)r(t2)r(t1)OYXZ圖7-1空間曲線平面曲線的直角坐標(biāo)表示形式為:

或其參數(shù)方程則為:平面上一點(diǎn)的位置可用自原點(diǎn)到該點(diǎn)的矢量表示:上式稱為曲線的矢量方程,其坐標(biāo)分量表示式是曲線的參數(shù)方程。三維空間曲線可理解為一個(gè)動(dòng)點(diǎn)的軌跡,位置矢量r隨時(shí)間t變化的關(guān)系就是一條空間曲線。

矢量方程為:三維空間曲線的參數(shù)方程為:法平面密切平面從切面tnρbP圖7-2曲線特性分析用s表示曲線的弧長(zhǎng),以弧長(zhǎng)為參數(shù)的曲線方程稱為自然參數(shù)方程。以弧長(zhǎng)為參數(shù)的曲線,其切矢為單位矢量,記為t(s)。切矢t(s)對(duì)弧長(zhǎng)s求導(dǎo),所得導(dǎo)矢dt(s)/ds與切矢相垂直,稱為曲率矢量,如圖7-2,其單位矢量稱為曲線的單位主法矢,記為n(s),其模長(zhǎng)稱為曲線的曲率,記為k(s)。曲率的倒數(shù)稱為曲線的曲率半徑,記為

與t和n相互垂直的單位矢量稱為副法矢,記為b(s)。由t和n張成的平面稱為密切平面;由n和b張成的平面稱為法平面;由t和b張成的平面稱為從切面。

rvnruZvv3v2v1v0OuYXr(u,v)圖7-3空間曲面r對(duì)u和v的一階偏導(dǎo)數(shù)為:

一階偏導(dǎo)數(shù)ru(u,v)和rv(u,v)繼續(xù)對(duì)u,v求偏導(dǎo)數(shù),得到四個(gè)二階偏導(dǎo)數(shù)ruu、ruv、rvu、rvv:直紋面旋轉(zhuǎn)面“線動(dòng)成面”雙線性插值曲面

Coons曲面是已知曲面片的四條邊界曲線,由兩張直紋曲面的和減去一張雙線性插值曲面得到的:

這種布爾和形式的曲面是Coons于1967年研究的,拼合時(shí),整張曲面C0連續(xù),即位置連續(xù)。要達(dá)到C1連續(xù),必須考慮跨界切矢的插值。

Coons曲面(麻省理工學(xué)院)切矢方向與模:方向相同,模不同,G1連續(xù);方向相同,模相同,C1連續(xù);已知曲線r1(u)的末端和曲線r2(v)的首端相連,其不同階次連續(xù)性的要求如下:位置連續(xù)(C0):曲線段r1(u)的末端與曲線段r2(v)的首端達(dá)到位置連續(xù)的條件為:r1(1)=r2(0)斜率連續(xù)(C1):曲線段r1(u)的末端與曲線段r2(v)的首端達(dá)到斜率連續(xù)的條件為:

若k=1,說(shuō)明曲線段r1(u1)的末端切矢與曲線段r2(u2)的首端切矢方向相同、模長(zhǎng)相等,稱為C1連續(xù)。若k≠1,則說(shuō)明兩段曲線在公共連接點(diǎn)處切矢方向相同,但模長(zhǎng)不相等,這種情況是幾何連續(xù)的,稱為G1連續(xù),也稱視覺(jué)連續(xù)。

曲率連續(xù)(C2):

兩曲線段曲率連續(xù)應(yīng)滿足:(1)位置連續(xù);(2)斜率連續(xù);(3)曲率相等且主法線方向一致。

對(duì)于曲面片,若兩個(gè)曲面片在公共連接線上處處滿足上述各類連續(xù)性條件,則兩個(gè)曲面片之間有同樣的結(jié)論。

G2連續(xù)滿足條件:幾何意義是:曲線段r2(u)首端的二階導(dǎo)矢應(yīng)處在由曲線段r1(v)末端的二階導(dǎo)矢和一階導(dǎo)矢所張成的平面內(nèi)。C2連續(xù)滿足條件:曲線曲面的光滑連接曲線設(shè)計(jì)基礎(chǔ)

插值曲線和擬合曲線(InterpolatecurveandFitcurve)原始數(shù)據(jù)點(diǎn)精確原始數(shù)據(jù)點(diǎn)不精確XYX’Y’由一組基函數(shù)及相聯(lián)系的系數(shù)矢量來(lái)表示:采用不同的基函數(shù),曲線的數(shù)學(xué)表示方法就不同?;瘮?shù)一旦確定,系數(shù)矢量就完全定義了曲線。計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)中的曲線的一般表示形式規(guī)范基表示具有幾何不變性。即同樣的點(diǎn)在不同坐標(biāo)系中生成的曲線相同。拋物線方程不具有幾何不變性。若稱為規(guī)范基。n次多項(xiàng)式的全體構(gòu)成n次多項(xiàng)式空間,在其中任選一組線性無(wú)關(guān)的多項(xiàng)式都可以作為基。冪基ui,i=0,1,…,n是最簡(jiǎn)單的多項(xiàng)式基,相應(yīng)的參數(shù)多項(xiàng)式曲線方程為:對(duì)于給定的n+1個(gè)數(shù)據(jù)點(diǎn)Pi,i=0,1,2,…,n,欲構(gòu)造其插值曲線或逼近曲線,必先得到對(duì)應(yīng)于各數(shù)據(jù)點(diǎn)Pi的參數(shù)值ui,ui是一個(gè)嚴(yán)格遞增的序列△U:u0<u1<…<un采用不同的參數(shù)化,得到的曲線也不同。常用的參數(shù)化方法:(1)

均勻參數(shù)化(等距參數(shù)化)(2)

積累弦長(zhǎng)參數(shù)化(3)

向心參數(shù)化(4)

修正弦長(zhǎng)參數(shù)化對(duì)給定數(shù)據(jù)點(diǎn)實(shí)行參數(shù)化,將參數(shù)值ui代入上述方程,使之滿足插值條件:,i=0,1,…,n得一組線性方程組:參數(shù)多項(xiàng)式曲線由于高次多項(xiàng)式曲線存在缺陷,單一低次多項(xiàng)式曲線又難以描述復(fù)雜形狀的曲線。所以采用低次多項(xiàng)式按分段的方式在一定連續(xù)條件下拼接復(fù)雜的組合曲線是唯一的選擇。低次多項(xiàng)式組合曲線y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3以三次多項(xiàng)式為例:“線動(dòng)成面”如何選擇基函數(shù)使系數(shù)具有幾何意義,且操作方便,易于修改是曲線曲面設(shè)計(jì)方法的發(fā)展方向。三次樣條函數(shù)(Spline)Schoenberg于1946年提出,國(guó)外60年代廣泛研究,國(guó)內(nèi)70年代開(kāi)始。R(x)—梁的曲率半徑M(x)—作用在梁上的彎矩E—材料的彈性模量I—梁橫截面的慣性矩在梁彎曲不大的情況下,y′<<1,簡(jiǎn)化為:y′′(x)~M(x)y(x)是x的三次多項(xiàng)式,這就是插值三次樣條函數(shù)的物理背景。樣條曲線的物理背景樣條(spline)是富有彈性的細(xì)木條或有機(jī)玻璃條。早期船舶、汽車、飛機(jī)放樣時(shí)用壓鐵壓在樣條上的一系列型值點(diǎn)上,調(diào)整壓鐵達(dá)到設(shè)計(jì)要求后繪制其曲線,稱為樣條曲線y(x)。7.2三次樣條曲線曲面(1)樣條是物質(zhì)連續(xù)的,相當(dāng)于函數(shù)C0連續(xù);(2)樣條在壓鐵兩側(cè)斜率相同,相當(dāng)于函數(shù)C1連續(xù);(3)樣條在壓鐵兩側(cè)曲率相同,相當(dāng)于函數(shù)C2連續(xù);三次樣條函數(shù)的數(shù)學(xué)描述

在區(qū)間[a,b]上給定一個(gè)分割:a=x1<x2<???<xn=b,則稱在區(qū)間[a,b]上滿足下列條件的函數(shù)S(x)為三次樣條函數(shù):(1)在每個(gè)子區(qū)間[xi-1,xi](i=1,2,???,n)上為三次多項(xiàng)式;(2)在整個(gè)區(qū)間[a,b]上具有直到二階連續(xù)的導(dǎo)數(shù),即在內(nèi)節(jié)點(diǎn)xi處,i=2,3,???,n-1,k=0,1,2(3)給定一組型值點(diǎn)(xi,yi)(i=1,2,???,n),S(x)滿足S(xi)=y(tǒng)i,

則稱S(x)為插值三次樣條函數(shù);(xi-1,yi-1)(xi,yi)ti-1tiS(x)=ai+bix+cix2+dix3

i=1,2,…,nS(xi-1)=yi-1S(xi)=yiS’(xi-1)=ti-1S’(xi)=ti物理樣條的性質(zhì)將所求系數(shù)代入樣條函數(shù)表達(dá)式,得:式中xi-1≤x≤xi(i=1,2,…,n)上述公式為。只要求解出型值點(diǎn)處的斜率mi(i=0,1,2,…,n),就可以應(yīng)用上述公式計(jì)算插值三次樣條函數(shù)的函數(shù)值、一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。以(xi-1+hi)代替xi,代入yi(x)的表達(dá)式,并按(x-xi-1)的冪次整理成如下矩陣表達(dá)式:插值三次樣條函數(shù)的基本公式插值三次樣條函數(shù)的矩陣表達(dá)式:式中xi-1≤x≤xi(i=1,2,…,n)若令hi=1,t=x-xi-1,0≤t≤1,則得到均勻參數(shù)插值三次樣條。1963年美國(guó)波音公司的Ferguson用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程即是均勻參數(shù)插值三次樣條曲線:

其中P(t)表示位置矢量,P′(t)表示切矢由上述樣條函數(shù)公式可以看出,構(gòu)造插值三次樣條時(shí)除已經(jīng)給定的型值點(diǎn)外,還必須得到型值點(diǎn)處的切矢。為了計(jì)算型值點(diǎn)處的切矢mi(i=0,1,2,…,n),可以利用前、后二曲線段在型值點(diǎn)處的二階導(dǎo)數(shù)連續(xù)的條件:

三次樣條函數(shù)的計(jì)算步驟(1)給定一組型值點(diǎn)Pi(xi,yi,zi),i=0,1,…,n,構(gòu)造三個(gè)關(guān)于參數(shù)u的插值三次樣條函數(shù):

(2)計(jì)算各數(shù)據(jù)點(diǎn)Pi的參數(shù)值ui,參數(shù)u有多種選擇,采用累加弧長(zhǎng)是最直觀的。但由于在得到曲線之前,無(wú)法計(jì)算弧長(zhǎng)。實(shí)際應(yīng)用中多采用累加弦長(zhǎng)作為參數(shù)構(gòu)造樣條曲線,并稱其為累加弦長(zhǎng)參數(shù)樣條曲線,簡(jiǎn)稱參數(shù)樣條曲線。ui的計(jì)算公式如下:所得ui是一個(gè)嚴(yán)格遞增的序列:u0<u1<…<un(3)依據(jù)參數(shù)及型值點(diǎn)的數(shù)據(jù)表,分別構(gòu)造插值樣條函數(shù)x=x(u),y=y(u),z=z(u),得到分段三次多項(xiàng)式函數(shù)組合的參數(shù)樣條曲線。uu0u1u2…unxx0x1x2…xnyy0y1y2…ynzz0z1z2…zn實(shí)際應(yīng)用中很難給出數(shù)據(jù)點(diǎn)處的切矢。采用不同的方法計(jì)算切矢,生成的曲線不相同。這說(shuō)明這種方法還不是純幾何的方法,根據(jù)給定的數(shù)據(jù)點(diǎn),不能唯一地確定曲線。繪圖過(guò)程中幾何意義不夠明顯。切矢計(jì)算是整體求解,改變一點(diǎn),所有切矢計(jì)算結(jié)果都發(fā)生變化,不局部局部修改性。對(duì)于均勻參數(shù)三次樣條曲線,當(dāng)相鄰弦長(zhǎng)相差懸殊時(shí),弦長(zhǎng)短的曲線段因兩端切矢模長(zhǎng)與弦長(zhǎng)相比過(guò)大而出現(xiàn)尖點(diǎn)或紐結(jié)。當(dāng)型值點(diǎn)分布不勻稱時(shí),不適宜構(gòu)造參數(shù)樣條曲面。三次樣條函數(shù)的特點(diǎn)圖7-5型值點(diǎn)分布勻稱情形

圖7-6型值點(diǎn)分布不勻稱情形1963年首先在飛機(jī)設(shè)計(jì)中使用。根據(jù)如下的張量積曲面公式,一張曲面可以表示成:根據(jù)“線動(dòng)成面”的思想,F(xiàn)urgeson曲面的矩陣表示如下:

用上述Furgeson曲面片組合的曲面在連接處滿足位置連續(xù)和導(dǎo)矢連續(xù),即C1連續(xù)。其關(guān)鍵在于曲面片角點(diǎn)導(dǎo)矢的計(jì)算。

Furgeson曲面(三次均勻參數(shù)樣條曲面)*(可選講)英國(guó)的Forest于1972年將上述Bézier曲線中的控制多邊形頂點(diǎn)改為絕對(duì)位置矢量的Bernstein基表示形式:0≤t≤1i=0,1,…,n當(dāng)n=3時(shí):

B0,3(t)B2,3(t)B1,3(t)B3,3(t)三次Bézier曲線的矩陣表示形式為:d0d1d2d3di為絕對(duì)位置矢量單一Bézier曲線不能滿足描述復(fù)雜形狀的要求,必須采用組合Bézier曲線。參數(shù)連續(xù)是對(duì)曲線光順性的過(guò)分要求,在組合曲線的連接點(diǎn)處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長(zhǎng)相等。幾何連續(xù)只要求在連接點(diǎn)處切矢方向相同,切矢模長(zhǎng)可以不相等,由此產(chǎn)生了不同控制手段的多種曲線,如Gamma()樣條曲線、Beta()樣條曲線等,給曲線設(shè)計(jì)提供了極大的靈活性。若要組合Bézier曲線在連接點(diǎn)處具有一定的連續(xù)性,構(gòu)成曲線的位置點(diǎn)矢量之間存在約束條件,可用Bézier曲線方程的一階、二階導(dǎo)數(shù)推導(dǎo)。Bézier曲線的優(yōu)點(diǎn)是具有明確的幾何意義,給定數(shù)據(jù)點(diǎn)的控制多邊形確定曲線的形狀,在設(shè)計(jì)過(guò)程中具有很強(qiáng)的可操作性。對(duì)于局部參數(shù)的Bézier曲線,當(dāng)弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的那段曲線過(guò)分平坦,弦長(zhǎng)較短的那段曲線則臌得厲害。d0d1d2d3組合Bézier曲線示意圖

Bézier曲線的特點(diǎn)用Bézier曲面片組合曲面時(shí),曲面拼合處位置連續(xù),要求:r1(1,v)=r2(0,v)[1111]AM1AT=[1000]AM2AT

即:,上圖即為兩張C0連續(xù)的Bézier曲面片.

C0連續(xù)的Bézier組合曲面(位置連續(xù))曲面片1曲面片2若要得到跨界一階導(dǎo)矢的連續(xù)性,對(duì)于0≤v≤1,曲面片1在u=1的切平面和曲面片2在u=0處的切平面重合,曲面的法矢在跨界處連續(xù),即:

其中λ(ν)是考慮法矢模長(zhǎng)的不連續(xù).

組合曲面所有等v線的梯度連續(xù)用矩陣表示為:

表明跨界的四對(duì)棱邊必須共線。

取λ(ν)=λ,

因?yàn)榱?/p>

C1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))曲面片1曲面片2B樣條曲線是Schocenberg于1946年提出的,1972年deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法。作為CAGD的一種形狀描述的數(shù)學(xué)方法是Gordon和Riesenfeld于1974年在研究Bézier曲線的基礎(chǔ)上給出的[4]。B樣條曲線方程為:其中di,i=0,1,….,n為控制頂點(diǎn)

K次規(guī)范B樣條基函數(shù)Ni,K(u)(i=0,1,…,n)定義如下:

i(i=0,1,…,n)是對(duì)應(yīng)于給定數(shù)據(jù)點(diǎn)的節(jié)點(diǎn)參數(shù)。7.4B樣條曲線和曲面當(dāng)K=3,且采用均勻參數(shù)化時(shí),得到三次均勻B樣條曲線:

0≤t=≤1,i=0,1,…,n-3

在分段連接點(diǎn)處B樣條曲線的值和導(dǎo)矢量為:

均勻B樣條曲線

對(duì)于三次均勻B樣條曲線,計(jì)算對(duì)應(yīng)于參數(shù)[ui,ui+1]這段曲線上的一點(diǎn),要用到Ni-3,3(u)、Ni-2,3(u)、Ni-1,3(u)、Ni,3(u)四個(gè)基函數(shù),涉及ui-3到ui+4共8個(gè)節(jié)點(diǎn)的參數(shù)值。

B樣條曲線的基函數(shù)是局部支撐的,修改一個(gè)數(shù)據(jù)點(diǎn),在修改處影響最大,對(duì)其兩側(cè)的影響快速衰減,其影響范圍只有前后各K段曲線,對(duì)曲線的其它部分沒(méi)有影響。這是計(jì)算機(jī)輔助幾何設(shè)計(jì)所需要的局部修改性。均勻B樣條曲線未考慮曲線數(shù)據(jù)點(diǎn)的分布對(duì)參數(shù)化的影響,當(dāng)曲線弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的曲線段比較平坦,而弦長(zhǎng)較短的曲線段則臌漲,甚至于因過(guò)“沖”而產(chǎn)生“紐結(jié)”。

均勻B樣條曲面給定16個(gè)頂點(diǎn)dij(i=1,2,3,4j=1,2,3,4)構(gòu)成的特征網(wǎng)格,可以定義一張曲面片。用di1、di2、di3、di4(i=1,2,3,4)構(gòu)建四條V向曲線C1、C2、C3和C4(圖中虛線);d24uvd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2d41d22參數(shù)v在[0,1]之間取值vk,對(duì)應(yīng)于vk曲線C1、C2、C3和C4上可得到V1k、V2k、V3k和V4k四個(gè)點(diǎn),該四點(diǎn)構(gòu)成u向的一個(gè)特征多邊形,定義一條新的曲線P(u,vk);uvC4C3C1C2V1kV3kV4kV2k當(dāng)參數(shù)vk在[0,1]之間取不同值時(shí),P(u,vk)沿箭頭方向掃描,即得到由給定特征網(wǎng)格dij(i=1,2,3,4j=1,2,3,4)定義的雙三次均勻B樣條曲面片P(u,v)。d24uvV1kd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2V2kV3kV4kd41P(u,vK)d22雙三次均勻B樣條曲面P(u,v)的矩陣表示考慮曲線弦長(zhǎng)的影響,則曲線的基函數(shù)不再具有同樣的格式,必須根據(jù)給定數(shù)據(jù)點(diǎn)進(jìn)行弦長(zhǎng)參數(shù)化,然后根據(jù)基函數(shù)的定義用如下的曲線方程計(jì)算各段曲線上的點(diǎn):非均勻B樣條曲線考慮了弦長(zhǎng)的影響,曲線不會(huì)因?yàn)楣?jié)點(diǎn)分布不均勻而產(chǎn)生過(guò)沖和紐結(jié)。非均勻B樣條曲線比均勻B樣條曲線具有更好的光順性。7.5非均勻有理B樣條曲線曲面非均勻B樣條曲線曲面非均勻B樣條均勻B樣條根據(jù)曲線方程,計(jì)算曲線上的點(diǎn)需要對(duì)應(yīng)參數(shù)區(qū)間上的基函數(shù)的值和控制多邊形的頂點(diǎn)?;瘮?shù)的值根據(jù)給定數(shù)據(jù)點(diǎn)的參數(shù)化進(jìn)行計(jì)算。控制多邊形的頂點(diǎn)依據(jù)曲線是否通過(guò)給定數(shù)據(jù)點(diǎn)確定,若生成的曲線不通過(guò)給定數(shù)據(jù)點(diǎn),則給定數(shù)據(jù)點(diǎn)就是控制多邊形頂點(diǎn)。若生成的曲線通過(guò)給定數(shù)據(jù)點(diǎn),則首先必須根據(jù)給定數(shù)據(jù)點(diǎn)反求控制多邊形的頂點(diǎn),然后再代入曲線。

非均勻B樣條曲線的實(shí)現(xiàn)給定數(shù)據(jù)點(diǎn)di(i=0,1,…,n-1)就是控制多邊形的頂點(diǎn)。對(duì)于開(kāi)口曲線,n個(gè)數(shù)據(jù)點(diǎn)只畫(huà)n-3段曲線,需n-2個(gè)節(jié)點(diǎn)參數(shù)。而計(jì)算[Ui,Ui+1]上的一點(diǎn),要用到除它們之外的前3個(gè)和后3個(gè)節(jié)點(diǎn)參數(shù),所以在首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),一共需要n+4個(gè)節(jié)點(diǎn)參數(shù)值。為使曲線過(guò)給定數(shù)據(jù)的首末點(diǎn),令U0=U1=U2=0;Un+1=Un+2=Un+3=1;全部節(jié)點(diǎn)參數(shù)為:用Hartley-Judd方法,即所畫(huà)曲線段對(duì)應(yīng)的控制多邊形的長(zhǎng)度與總控制多邊形的長(zhǎng)度之比確定節(jié)點(diǎn)參數(shù)。U0=U1=U2=0;UK,UK+1,…,Un;Un+1=Un+2=Un+3=1;不過(guò)點(diǎn)三次非均勻B樣條曲線對(duì)于閉合曲線,n個(gè)數(shù)據(jù)點(diǎn)畫(huà)n段曲線,需n+1個(gè)節(jié)點(diǎn)參數(shù)曲線;首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),共n+7個(gè)節(jié)點(diǎn)參數(shù)。由于不過(guò)點(diǎn)閉合曲線,不通過(guò)控制多邊形的首末點(diǎn),全部節(jié)點(diǎn)參數(shù)為:U0=0<U1<U2<UK<UK+1<…<Un+3<Un+4<Un+5<Un+6=1各節(jié)點(diǎn)的參數(shù)值采用Hartley-Judd方法。計(jì)算出節(jié)點(diǎn)參數(shù)后,就可以計(jì)算基函數(shù)Ni,K(u)的值,然后用曲線方程計(jì)算各段曲線上的點(diǎn)對(duì)于過(guò)點(diǎn)曲線,給定的數(shù)據(jù)點(diǎn)Pi(i=0,1,…,n-1)是曲線上的點(diǎn)。由曲線方程知,必須先計(jì)算出節(jié)點(diǎn)參數(shù),再計(jì)算基函數(shù)Ni,K(u)的值,代入曲線方程,才能反算出控制多邊形的頂點(diǎn):

n個(gè)數(shù)據(jù)點(diǎn),反求出n+2個(gè)控制頂點(diǎn),畫(huà)n-1段曲線,需n個(gè)節(jié)點(diǎn)參數(shù);首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),一共需要n+6個(gè)節(jié)點(diǎn)參數(shù)值;在曲線首端重3段曲線首段的長(zhǎng)度,在曲線的末端重3段曲線末段的長(zhǎng)度。所有節(jié)點(diǎn)參數(shù)為:U0=0<U1<U2<UK<UK+1<…<Un+2<Un+3<Un+4<Un+5=1i=1,2,……,n+5,L為包含附加段在內(nèi)的總長(zhǎng)。過(guò)點(diǎn)三次非均勻B樣條曲線根據(jù)節(jié)點(diǎn)矢量計(jì)算基函數(shù)Ni,K(u)的值,代入曲線方程可以計(jì)算n個(gè)已知的曲線上的點(diǎn),得如下方程:

寫(xiě)成矩陣形式如下:

對(duì)于開(kāi)口曲線,d0=P0,dn+1=Pn-1,上述方程組是“追趕法”能夠求解的三對(duì)角方程。求出d0,d1,……,dn,dn+1共n+2個(gè)控制頂點(diǎn),即可以畫(huà)出n-1曲線。(閉合曲線省略)wi,i=0,1,…,n稱為權(quán)因子;Ni,K(u)是B樣條的基函數(shù)有理B樣條曲線非均勻B樣條考慮節(jié)點(diǎn)分布不勻稱的影響,但與所有已介紹的計(jì)算曲線一樣,非均勻B樣條不能精確表達(dá)二次曲線曲面,采用有理B樣條,可以統(tǒng)一表達(dá)自由曲線曲面和二次曲線曲面。

有理B樣條曲線的表達(dá)式為:

當(dāng)Ni,K(u)是均勻基函數(shù)時(shí),p(u)為均勻有理B樣條曲線;當(dāng)Ni,K(u)是非均勻基函數(shù)時(shí),p(u)為非均勻有理B樣條(Non-UniformRationalB-Spline,簡(jiǎn)稱NURBS)曲線;通過(guò)合理的定義權(quán)系數(shù),NURBS曲線能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中。曲線設(shè)計(jì)方法的關(guān)鍵在于基函數(shù)的選擇,選擇合適的基函數(shù)能夠使系數(shù)矢量具有更明確的幾何意義,繪圖操作簡(jiǎn)單直觀?;瘮?shù)和參數(shù)化方法的選擇對(duì)曲線的精度、光順性、局部修改性具有決定性的影響。整個(gè)曲線設(shè)計(jì)方法的改進(jìn)方向是在提高精度、保證光順性的同時(shí)追求靈活的操作、明確的幾何意義和良好的局部修改性。

曲線設(shè)計(jì)結(jié)論:7.6用OpenGL生成曲線和曲面在OpenGL中,GLU函數(shù)庫(kù)提供了一個(gè)NURBS接口。用戶需要提供的數(shù)據(jù)包括控制點(diǎn)、節(jié)點(diǎn)等數(shù)據(jù),控制點(diǎn)描述曲線的大致形狀,節(jié)點(diǎn)控制B樣條函數(shù)的形狀。繪制一條NURBS曲線的步驟:(1)提供控制點(diǎn)序列和節(jié)點(diǎn)序列;(2)創(chuàng)建一個(gè)NURBS對(duì)象,設(shè)置NURBS對(duì)象屬性;(3)繪制曲線;創(chuàng)建一個(gè)NURBS對(duì)象,用如下兩條語(yǔ)句:GLUnurbsObj*theNurbs;theNurbs=gluNewNurbsRender();創(chuàng)建對(duì)象后,用如下函數(shù)設(shè)置NURBS對(duì)象屬性:voidgluNurbsProperty(GLUnurbsObj*nobj,GLenumproperty,Glfloatvalue);曲線的繪制是在gluBeginCurve()/gluEndCurve()函數(shù)對(duì)中完成。繪制曲線的函數(shù)為:voidgluNurbsCurve(GLUnurbsObj*nobj,GLintnknots,GLfloat*knot,GLintstride,GLfloat*ctlarray,GLintorder,GLenumtype);具體參數(shù)含義在下面程序?qū)崿F(xiàn)中解釋。詳見(jiàn)OpenGL專著有關(guān)說(shuō)明。voidCView::DrawNurbsCurve(){ GLfloatcontrolPoints[7][3]={{-1.5f,-0.5f,0.0f},{-1.0f,1.0f,0.0f}, {-0.5f,-0.5f,0.0f},{0.0f,-2.0f,0.0f}, {0.5f,-0.5f,0.0f},{1.0f,1.0f,0.0f},{1.5f,-0.5f,0.0f} };//給定控制點(diǎn) GLfloatknots[14]={0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,0.0f,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論