曲線與曲面課件_第1頁
曲線與曲面課件_第2頁
曲線與曲面課件_第3頁
曲線與曲面課件_第4頁
曲線與曲面課件_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

主講人:趙宏慶第7章曲線與曲面1第7章曲線與曲面7.1曲線與曲面入門7.2三次樣條曲線曲面7.3Bézier曲線和曲面7.4B樣條曲線和曲面7.5非均勻有理B樣條曲線曲面7.6用OpenGL生成曲線和曲面2第7章曲線與曲面曲線曲面的計(jì)算機(jī)輔助設(shè)計(jì)源于20世紀(jì)60年代的飛機(jī)和汽車工業(yè)。1963年美國(guó)波音公司的Ferguson提出用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程;1962年法國(guó)雷諾汽車公司的Bézier于提出以逼近為根底的曲線曲面設(shè)計(jì)系統(tǒng)UNISURF;此前deCasteljau大約于1959年在法國(guó)另一家汽車公司雪鐵龍的CAD系統(tǒng)中有同樣的設(shè)計(jì),但因?yàn)楸C艿脑蚨鴽]有公布;1964年Coons提出了一類布爾和形式的曲面;1972年,deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法;3第7章曲線與曲面1975年以后,Riesenfeld等人研究了非均勻B樣條曲線曲面,美國(guó)錫拉丘茲大學(xué)的Versprille研究了有理B樣條曲線曲面;20世紀(jì)80年末、90年代初,Piegl和Tiller等人對(duì)有理B樣條曲線曲面進(jìn)行了深入的研究,并形成非均勻有理B樣條(Non-UniformRationalB-Spline,簡(jiǎn)稱NURBS);1991年國(guó)際標(biāo)準(zhǔn)組織(ISO)正式公布了產(chǎn)品數(shù)據(jù)交換的國(guó)際標(biāo)準(zhǔn)STEP,NURBS是工業(yè)產(chǎn)品幾何定義唯一的一種自由型曲線曲面。4第7章曲線與曲面整個(gè)曲線曲面設(shè)計(jì)方法的開展史說明了曲線曲面設(shè)計(jì)方法的要求:(要求掌握)〔1〕防止高次多項(xiàng)式函數(shù)可能引起的過多拐點(diǎn),曲線曲面設(shè)計(jì)宜采用低次多項(xiàng)式函數(shù)進(jìn)行組合;組合曲線曲面在公共連接處滿足一定的連續(xù)性;〔2〕繪圖過程具有明確的幾何意義,且操作方便;〔3〕具有幾何不變性;〔4〕具有局部修改性,修改其中一點(diǎn),不影響全局,只有很小范圍內(nèi)的形狀受到影響。5曲線的表示形式7.1曲線曲面根底平面曲線的直角坐標(biāo)表示形式為:或其參數(shù)方程則為:平面上一點(diǎn)的位置可用自原點(diǎn)到該點(diǎn)的矢量表示:上式稱為曲線的矢量方程,其坐標(biāo)分量表示式是曲線的參數(shù)方程。矢量方程為:三維空間曲線的參數(shù)方程為:61曲線的表示形式7.1曲線曲面根底r(t2)r(t1)OYXZ圖7-1空間曲線三維空間曲線可理解為一個(gè)動(dòng)點(diǎn)的軌跡,位置矢量r隨時(shí)間t變化的關(guān)系就是一條空間曲線。7密切平面法平面從切面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張成的平面稱為從切面。82曲面的表示形式

一般曲面可表示為:或其參數(shù)表達(dá)式為:曲面的矢量方程為:參數(shù)u、v的變化區(qū)間常取為單位正方形,即u,v∈[0,1]。x,y,z都是u和v二元可微函數(shù)。當(dāng)(u,v)在區(qū)間[0,1]之間變化時(shí),與其對(duì)應(yīng)的點(diǎn)(x,y,z)就在空間形成一張曲面。映射空間域uv參數(shù)域9rvnruZvv3v2v1v0OuYXr(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:10直紋面旋轉(zhuǎn)面“線動(dòng)成面〞雙線性插值曲面11Coons曲面是曲面片的四條邊界曲線,由兩張直紋曲面的和減去一張雙線性插值曲面得到的:這種布爾和形式的曲面是Coons于1967年研究的,拼合時(shí),整張曲面C0連續(xù),即位置連續(xù)。要到達(dá)C1連續(xù),必須考慮跨界切矢的插值。Coons曲面〔麻省理工學(xué)院〕12雙線性插值曲面,采用了“先定義線,然后線動(dòng)成面〞的思想。張量積曲面也是采用“線動(dòng)成面〞的思想,是CAGD中應(yīng)用最廣泛的一類曲面生成方法參數(shù)u的分割:及其上的及調(diào)配函數(shù)參數(shù)v的分割:及其上的及調(diào)配函數(shù)定義在uv平面的矩形區(qū)域上的這張曲面稱為張量積曲面。張量積曲面的特點(diǎn)是將曲面問題化解為簡(jiǎn)單的曲線問題來處理,適用于拓?fù)渖铣示匦蔚那嫘螤睢S成淇臻g域參數(shù)域vu

張量積曲面13切矢方向與模:方向相同,模不同,G1連續(xù);方向相同,模相同,C1連續(xù);連續(xù)性都我Ck曲線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ù)的條件為:假設(shè)k=1,說明曲線段r1(u1)的末端切矢與曲線段r2(u2)的首端切矢方向相同、模長(zhǎng)相等,稱為C1連續(xù)。假設(shè)k≠1,那么說明兩段曲線在公共連接點(diǎn)處切矢方向相同,但模長(zhǎng)不相等,這種情況是幾何連續(xù)的,稱為G1連續(xù),也稱視覺連續(xù)。曲線曲面的光滑連接(要求掌握)14曲率連續(xù)(C2):

兩曲線段曲率連續(xù)應(yīng)滿足:(1)位置連續(xù);(2)斜率連續(xù);(3)曲率相等且主法線方向一致。對(duì)于曲面片,假設(shè)兩個(gè)曲面片在公共連接線上處處滿足上述各類連續(xù)性條件,那么兩個(gè)曲面片之間有同樣的結(jié)論。幾何意義是:曲線段r2(u)首端的二階導(dǎo)矢應(yīng)處在由曲線段r1(v)末端的二階導(dǎo)矢和一階導(dǎo)矢所張成的平面內(nèi)。G2連續(xù)滿足條件:C2連續(xù)滿足條件:曲線曲面的光滑連接15曲線設(shè)計(jì)根底插值曲線和擬合曲線〔InterpolatecurveandFitcurve〕原始數(shù)據(jù)點(diǎn)精確原始數(shù)據(jù)點(diǎn)不精確XYX’Y’由一組基函數(shù)及相聯(lián)系的系數(shù)矢量來表示:采用不同的基函數(shù),曲線的數(shù)學(xué)表示方法就不同?;瘮?shù)一旦確定,系數(shù)矢量就完全定義了曲線。計(jì)算機(jī)輔助幾何設(shè)計(jì)(CAGD)中的曲線的一般表示形式標(biāo)準(zhǔn)基表示具有幾何不變性。即同樣的點(diǎn)在不同坐標(biāo)系中生成的曲線相同。拋物線方程不具有幾何不變性。若稱為規(guī)范基。16n次多項(xiàng)式的全體構(gòu)成n次多項(xiàng)式空間,在其中任選一組線性無關(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ù)多項(xiàng)式曲線17采用不同的參數(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)式曲線18解線性方程組,可得唯一解。冪基多項(xiàng)式曲線方程中的系數(shù)矢量幾何意義不明確,構(gòu)造曲線時(shí),需解線性方程組,n較大時(shí),不可取。其它多項(xiàng)式插值曲線如Lagrange、Newton、Hermite等較之冪基多項(xiàng)式曲線在計(jì)算性能等方面有較大改進(jìn),但總體上多項(xiàng)式曲線存在兩個(gè)問題:l

次數(shù)增高時(shí),出現(xiàn)多余的拐點(diǎn);l

整體計(jì)算,一個(gè)數(shù)據(jù)點(diǎn)的微小改動(dòng),可能引起曲線整體大的波動(dòng)。19由于高次多項(xiàng)式曲線存在缺陷,單一低次多項(xiàng)式曲線又難以描述復(fù)雜形狀的曲線。所以采用低次多項(xiàng)式按分段的方式在一定連續(xù)條件下拼接復(fù)雜的組合曲線是唯一的選擇。低次多項(xiàng)式組合曲線以三次多項(xiàng)式為例:如何選擇基函數(shù)使系數(shù)具有幾何意義,且操作方便,易于修改是曲線曲面設(shè)計(jì)方法的開展方向。20y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3“線動(dòng)成面〞21三次樣條函數(shù)〔Spline〕Schoenberg于1946年提出,國(guó)外60年代廣泛研究,國(guó)內(nèi)70年代開始。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三次樣條曲線曲面22物理樣條的性質(zhì)

樣條是物質(zhì)連續(xù)的,相當(dāng)于函數(shù)C0連續(xù);樣條在壓鐵兩側(cè)斜率相同,相當(dāng)于函數(shù)C1連續(xù);樣條在壓鐵兩側(cè)曲率相同,相當(dāng)于函數(shù)C2連續(xù);23三次樣條函數(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-1ti

S(x)=ai+bix+cix2+dix3

i=1,2,…,nS(xi-1)=yi-1S(xi)=yiS’(xi-1)=ti-1S’(xi)=ti24插值三次樣條函數(shù)有兩種常用的表達(dá)方式一種是用型值點(diǎn)處的一階導(dǎo)數(shù)表示的m關(guān)系式;一種是用型值點(diǎn)處二階導(dǎo)數(shù)表示的M關(guān)系式。本書重點(diǎn)介紹m關(guān)系式。25用型值點(diǎn)處的一階導(dǎo)數(shù)表示插值三次樣條函數(shù)―m關(guān)系式

給定一組型值點(diǎn)(xi,yi)(i=1,2,???,n),mi為(xi,yi)處的斜率。第i段樣條函數(shù)可表示為:

該段曲線的首端通過(xi-1,yi-1),斜率為mi-1,末端通過(xi,yi),斜率為mi,樣條連續(xù)條件可表達(dá)為:

將yi(x)代入,得:yi(x)=ai+bix+cix2+dix3(xi-1,yi-1)(xi,yi)mi-1mi(x0,y0)(xn,yn)mnm0圖7-4型值點(diǎn)和斜率(xi+1,yi+1)mi+1yi+1(x)=ai+1+bi+1x+ci+1x2+di+1x326將所求系數(shù)代入樣條函數(shù)表達(dá)式,得:27式中xi-1≤x≤xi(i=1,2,…,n)上述公式為插值三次樣條函數(shù)的根本公式。只要求解出型值點(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á)式:28插值三次樣條函數(shù)的矩陣表達(dá)式:式中xi-1≤x≤xi(i=1,2,…,n)假設(shè)令hi=1,t=x-xi-1,0≤t≤1,那么得到均勻參數(shù)插值三次樣條。1963年美國(guó)波音公司的Ferguson用于飛機(jī)設(shè)計(jì)的參數(shù)三次方程即是均勻參數(shù)插值三次樣條曲線:即為:三次Hermite樣條曲線,其中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ù)的條件:

29三次樣條函數(shù)的m連續(xù)性方程代入樣條函數(shù)二階導(dǎo)數(shù)表達(dá)式,整理得:三次樣條函數(shù)的m連續(xù)性方程

(xi-1,yi-1)(xi,yi)(xi+1,yi+1)計(jì)入首末點(diǎn)的切矢,共有n+1個(gè)未知量mi(i=0,1,2,…,n),但只有n-1個(gè)方程,需要補(bǔ)充兩個(gè)方程才能求解。30三次樣條函數(shù)的m連續(xù)性方程〔2〕在首末端指定二階導(dǎo)數(shù):在兩端指定二階導(dǎo)數(shù)和,補(bǔ)充方程為補(bǔ)充兩個(gè)方程:指定整條曲線的首末點(diǎn)的端點(diǎn)條件,〔1〕在首末端指定一階導(dǎo)數(shù):在兩端指定一階導(dǎo)數(shù)和,補(bǔ)充方程為整理得31三次樣條函數(shù)的m連續(xù)性方程

當(dāng)曲線兩端比較平坦時(shí),可以取二階導(dǎo)數(shù)和為0,即自由端點(diǎn)條件,此時(shí)前式可簡(jiǎn)化為:32三次樣條函數(shù)的m連續(xù)性方程〔3〕綜合兩類端點(diǎn)條件的補(bǔ)充方程:為了綜合考慮上述兩類端點(diǎn)的條件,可利用如下的表達(dá)式:33三次樣條函數(shù)的m連續(xù)性方程上式的系數(shù)矩陣為三對(duì)角帶狀矩陣,可用追趕法求解。綜合式〔7-13〕和式〔7-18〕,得如下方程組:34三次樣條函數(shù)的m連續(xù)性方程插值三次樣條函數(shù)的計(jì)算步驟:獲得型值點(diǎn);指定端點(diǎn)條件;計(jì)算μiλiCi;追趕法求解切矢;用式〔7-19〕逐段逐點(diǎn)計(jì)算插值三次樣條曲線、一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。35三次樣條曲線

〔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)是最直觀的。但由于在得到曲線之前,無法計(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<…<un36三次樣條曲線

〔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…zn37實(shí)際應(yīng)用中很難給出數(shù)據(jù)點(diǎn)處的切矢。采用不同的方法計(jì)算切矢,生成的曲線不相同。這說明這種方法還不是純幾何的方法,根據(jù)給定的數(shù)據(jù)點(diǎn),不能唯一地確定曲線。繪圖過程中幾何意義不夠明顯。切矢計(jì)算是整體求解,改變一點(diǎn),所有切矢計(jì)算結(jié)果都發(fā)生變化,不局部局部修改性。對(duì)于均勻參數(shù)三次樣條曲線,當(dāng)相鄰弦長(zhǎng)相差懸殊時(shí),弦長(zhǎng)短的曲線段因兩端切矢模長(zhǎng)與弦長(zhǎng)相比過大而出現(xiàn)尖點(diǎn)或紐結(jié)。當(dāng)型值點(diǎn)分布不勻稱時(shí),不適宜構(gòu)造參數(shù)樣條曲面。三次樣條函數(shù)的特點(diǎn)

型值點(diǎn)分布勻稱情形

型值點(diǎn)分布不勻稱情形38Bézier曲線是法國(guó)雷諾汽車公司的工程師Bézier于1962年提出。1972年在UNISURF系統(tǒng)中正式投入使用。Bézier曲線采用一組特殊的基函數(shù),使得基函數(shù)的系數(shù)具有明確的幾何意義。其曲線方程:

0≤t≤1其中從a0到an首尾相連的折線稱為Bézier控制多邊形。i=0,1,…,n7.3Bézier曲線和曲面a0a1a2a3ai為相對(duì)位置矢量(注:Bézier本人也不能解釋該公式的來源)39當(dāng)n=3時(shí):7.3Bézier曲線和曲面f0(t)f1(t)f2(t)f3(t)11040英國(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)d0d1d2d3di為絕對(duì)位置矢量41三次Bézier曲線的矩陣表示形式為:42單一Bézier曲線不能滿足描述復(fù)雜形狀的要求,必須采用組合Bézier曲線。參數(shù)連續(xù)是對(duì)曲線光順性的過分要求,在組合曲線的連接點(diǎn)處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長(zhǎng)相等。幾何連續(xù)只要求在連接點(diǎn)處切矢方向相同,切矢模長(zhǎng)可以不相等,由此產(chǎn)生了不同控制手段的多種曲線,如Gamma()樣條曲線、Beta()樣條曲線等,給曲線設(shè)計(jì)提供了極大的靈活性。假設(shè)要組合Bézier曲線在連接點(diǎn)處具有一定的連續(xù)性,構(gòu)成曲線的位置點(diǎn)矢量之間存在約束條件,可用Bézier曲線方程的一階、二階導(dǎo)數(shù)推導(dǎo)。d0d1d2d3組合Bézier曲線示意圖Bézier曲線的特點(diǎn)43Bézier曲線的優(yōu)點(diǎn)是具有明確的幾何意義,給定數(shù)據(jù)點(diǎn)的控制多邊形確定曲線的形狀,在設(shè)計(jì)過程中具有很強(qiáng)的可操作性。對(duì)于局部參數(shù)的Bézier曲線,當(dāng)弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的那段曲線過分平坦,弦長(zhǎng)較短的那段曲線那么臌得厲害。d0d1d2d3組合Bézier曲線示意圖Bézier曲線的特點(diǎn)44給定空間16個(gè)位置點(diǎn)rij,可以確定一張三次Bezier曲面片。Bézier曲面片uvrij首先生成四條v向的三次Bezier曲線:45根據(jù)“線動(dòng)成面〞的思想,按設(shè)定間隔取,在四條v線上取點(diǎn),沿u向生成三次Bezier曲線:Bézier曲面片uvV*46Bézier曲面片uv將u,v向曲線方程合并得:47Bézier曲面片的矩陣表達(dá)式rijuv48用Bézier曲面片組合曲面時(shí),曲面拼合處位置連續(xù),要求:r1(1,v)=r2(0,v)[1111]AM1AT=[1000]AM2AT

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

C0連續(xù)的Bézier組合曲面(位置連續(xù))曲面片1曲面片249假設(shè)要得到跨界一階導(dǎo)矢的連續(xù)性,對(duì)于0≤v≤1,曲面片1在u=1的切平面和曲面片2在u=0處的切平面重合,曲面的法矢在跨界處連續(xù),即:其中λ(ν)是考慮法矢模長(zhǎng)的不連續(xù).C1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))曲面片1曲面片250組合曲面所有等v線的梯度連續(xù)用矩陣表示為:說明跨界的四對(duì)棱邊必須共線。取λ(ν)=λ,因?yàn)榈玫紺1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))曲面片1曲面片2〔書上有誤〕51要求跨界切矢的比值不變是非??量痰南拗?,為了更自由地進(jìn)行曲面的拼合,可采用如下的較寬松的條件:C1連續(xù)的Bézier組合曲面(導(dǎo)矢連續(xù))曲面片1曲面片252B樣條曲線是Schocenberg于1946年提出的,1972年deBoor和Cox分別給出B樣條的標(biāo)準(zhǔn)算法。作為CAGD的一種形狀描述的數(shù)學(xué)方法是Gordon和Riesenfeld于1974年在研究Bézier曲線的根底上給出的[4]B樣條曲線方程為:其中di,i=0,1,….,n為控制頂點(diǎn)K次標(biāo)準(zhǔn)B樣條基函數(shù)Ni,K(u)〔i=0,1,…,n〕定義如下:ui〔i=0,1,…,n〕是對(duì)應(yīng)于給定數(shù)據(jù)點(diǎn)的節(jié)點(diǎn)參數(shù)。7.4B樣條曲線和曲面53當(dāng)K=3,且采用均勻參數(shù)化時(shí),得到三次均勻B樣條曲線:

0≤t=≤1,i=0,1,…,n-3在分段連接點(diǎn)處B樣條曲線的值和導(dǎo)矢量為:均勻B樣條曲線54均勻B樣條曲線55均勻B樣條曲線56對(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ù)值。57B樣條曲線的基函數(shù)是局部支撐的,修改一個(gè)數(shù)據(jù)點(diǎn),在修改處影響最大,對(duì)其兩側(cè)的影響快速衰減,其影響范圍只有前后各K段曲線,對(duì)曲線的其它局部沒有影響。這是計(jì)算機(jī)輔助幾何設(shè)計(jì)所需要的局部修改性。均勻B樣條曲線未考慮曲線數(shù)據(jù)點(diǎn)的分布對(duì)參數(shù)化的影響,當(dāng)曲線弦長(zhǎng)差異較大時(shí),弦長(zhǎng)較長(zhǎng)的曲線段比較平坦,而弦長(zhǎng)較短的曲線段那么臌漲,甚至于因過“沖〞而產(chǎn)生“紐結(jié)〞。58均勻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(圖中虛線);d24uvd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2d41d2259均勻B樣條曲面參數(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)。60d24uvV1kd42d43d44d11d12d13d14d21d23d31d32d33d34C4C3C1C2V2kV3kV4kd41P(u,vK)d22雙三次均勻B樣條曲面P(u,v)的矩陣表示61雙三次均勻B樣條曲面P(u,v)的矩陣表示為了使生成的曲面片通過特征網(wǎng)格的4個(gè)角點(diǎn),可采用B樣條曲線重節(jié)點(diǎn)的方法,即在v向和u向構(gòu)建曲線時(shí),分別在特征多邊形的端點(diǎn)處作重節(jié)點(diǎn)處理,那么生成的曲線過端點(diǎn),雙向計(jì)算后得到的曲面通過特征網(wǎng)格的4個(gè)角點(diǎn)。上述過程表達(dá)的是給定特征網(wǎng)格,定義一張曲面。實(shí)際應(yīng)用中,還需要根據(jù)給定的曲面反求特征網(wǎng)格的頂點(diǎn),以便進(jìn)行新的設(shè)計(jì)。這局部?jī)?nèi)容將在后面相關(guān)章節(jié)介紹曲線反求控制多邊形頂點(diǎn)的根底上簡(jiǎn)要介紹。62考慮曲線弦長(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)生過沖和紐結(jié)。非均勻B樣條曲線比均勻B樣條曲線具有更好的光順性。7.5非均勻有理B樣條曲線曲面非均勻B樣條曲線曲面非均勻B樣條均勻B樣條63根據(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ù)曲線是否通過給定數(shù)據(jù)點(diǎn)確定,假設(shè)生成的曲線不通過給定數(shù)據(jù)點(diǎn),那么給定數(shù)據(jù)點(diǎn)就是控制多邊形頂點(diǎn)。假設(shè)生成的曲線通過給定數(shù)據(jù)點(diǎn),那么首先必須根據(jù)給定數(shù)據(jù)點(diǎn)反求控制多邊形的頂點(diǎn),然后再代入曲線。非均勻B樣條曲線的實(shí)現(xiàn)64給定數(shù)據(jù)點(diǎn)di(i=0,1,…,n-1)就是控制多邊形的頂點(diǎn)。對(duì)于開口曲線,n個(gè)數(shù)據(jù)點(diǎn)只畫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ù)值。為使曲線過給定數(shù)據(jù)的首末點(diǎn),令U0=U1=U2=0;Un+1=Un+2=Un+3=1;全部節(jié)點(diǎn)參數(shù)為:U0=U1=U2=0;UK,UK+1,…,Un;Un+1=Un+2=Un+3=1;不過點(diǎn)三次非均勻B樣條曲線65用Hartley-Judd方法,即所畫曲線段對(duì)應(yīng)的控制多邊形的長(zhǎng)度與總控制多邊形的長(zhǎng)度之比確定節(jié)點(diǎn)參數(shù)。不過點(diǎn)三次非均勻B樣條曲線66對(duì)于閉合曲線,n個(gè)數(shù)據(jù)點(diǎn)畫n段曲線,需n+1個(gè)節(jié)點(diǎn)參數(shù)曲線;首尾各添加3個(gè)節(jié)點(diǎn)參數(shù),共n+7個(gè)節(jié)點(diǎn)參數(shù)。由于不過點(diǎn)閉合曲線,不通過控制多邊形的首末點(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)67對(duì)于過點(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),畫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)。過點(diǎn)三次非均勻B樣條曲線68根據(jù)節(jié)點(diǎn)矢量計(jì)算基函數(shù)Ni,K(u)的值,代入曲線方程可以計(jì)算n個(gè)的曲線上的點(diǎn),得如下方程:

寫成矩陣形式如下:對(duì)于開口曲線,d0=P0,dn+1=Pn-1,上述方程組是“追趕法〞能夠求解的三對(duì)角方程。求出d0,d1,……,dn,dn+1共n+2個(gè)控制頂點(diǎn),即可以畫出n-1曲線?!查]合曲線省略〕69非均勻三次B樣條曲面非均勻三次B樣條曲面的生成過程與均勻B樣條曲面相同。根據(jù)“線動(dòng)成面〞的思路,首先沿一參數(shù)方向生成曲線,然后讓另一參數(shù)在[0,1]范圍內(nèi)變化,在已生成的曲線上取點(diǎn)構(gòu)成新的控制多邊形,生成曲面上的一條線,隨著v的變化,所生成的曲線構(gòu)成一張曲面。應(yīng)用非均勻B樣條生成曲面有一定的局限性,當(dāng)同一參數(shù)方向各型值點(diǎn)的分布規(guī)律接近時(shí),所生成的非均勻B樣條曲面結(jié)果比較滿意。70wi,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)曲線;通過合理的定義權(quán)系數(shù),NURBS曲線能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中。71二次有理B樣條曲線表達(dá)式72二次有理B樣條曲線表達(dá)式由式〔7-24〕可推導(dǎo)出:書上有誤書上有誤73非均勻有理B樣條曲線曲面有理B樣條曲線采用非均勻的基函數(shù),那么稱為非均勻有理B樣條曲線〔non-uniformrationalb-spline,NURBS〕曲線。非均勻有理B樣條曲線的表達(dá)式為:其中,ωi〔i=0,1,…,n〕稱為權(quán)因子。NURBS曲線在有理B樣條曲線的根底上,考慮了節(jié)點(diǎn)分布不勻稱對(duì)基函數(shù)的影響,同時(shí)能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標(biāo)準(zhǔn)之中。很多軟件或程序具有生成NURBS曲線和曲面的功能。74曲線設(shè)計(jì)方法的關(guān)鍵在于基函數(shù)的選擇,選擇適宜的基函數(shù)能夠使系數(shù)矢量具有更明確的幾何意義,繪圖操作簡(jiǎn)單直觀。基函數(shù)和參數(shù)化方法的選擇對(duì)曲線的精度、光順性、局部修改性具有決定性的影響。整個(gè)曲線設(shè)計(jì)方法的改進(jìn)方向是在提高精度、保證光順性的同時(shí)追求靈活的操作、明確的幾何意義和良好的局部修改性。曲線設(shè)計(jì)結(jié)論:樣條函數(shù)Bézier

B樣條函數(shù)757.6用OpenGL生成曲線和曲面在OpenGL中,GLU函數(shù)庫提供了一個(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ì)象,用如下兩條語句: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)中解釋。詳見OpenGL專著有關(guān)說明。76voidCView::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.0f,1.0f,1.0f,1.0f,1.0f,1.0f,1.0f};//節(jié)點(diǎn) glColor3f(0.0f,0.0f,1.0f); GLUnurbsObj*theNurb;//創(chuàng)立NURBS對(duì)象theNurb=gluNewNurbsRenderer(); gluNurbsProperty(theNurb,GLU_SAMPLING_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論