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

下載本文檔

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

文檔簡介

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

一般曲面可表示為:或其參數(shù)表達式為:曲面的矢量方程為:參數(shù)u、v的變化區(qū)間常取為單位正方形,即u,v∈[0,1]。x,y,z都是u和v二元可微函數(shù)。當(u,v)在區(qū)間[0,1]之間變化時,與其對應的點(x,y,z)就在空間形成一張曲面。映射空間域uv參數(shù)域9rvnruZvv3v2v1v0OuYXr(u,v)圖7-3空間曲面r對u和v的一階偏導數(shù)為:一階偏導數(shù)ru(u,v)和rv(u,v)繼續(xù)對u,v求偏導數(shù),得到四個二階偏導數(shù)ruu、ruv、rvu、rvv:10直紋面旋轉(zhuǎn)面“線動成面〞雙線性插值曲面11Coons曲面是曲面片的四條邊界曲線,由兩張直紋曲面的和減去一張雙線性插值曲面得到的:這種布爾和形式的曲面是Coons于1967年研究的,拼合時,整張曲面C0連續(xù),即位置連續(xù)。要到達C1連續(xù),必須考慮跨界切矢的插值。Coons曲面〔麻省理工學院〕12雙線性插值曲面,采用了“先定義線,然后線動成面〞的思想。張量積曲面也是采用“線動成面〞的思想,是CAGD中應用最廣泛的一類曲面生成方法參數(shù)u的分割:及其上的及調(diào)配函數(shù)參數(shù)v的分割:及其上的及調(diào)配函數(shù)定義在uv平面的矩形區(qū)域上的這張曲面稱為張量積曲面。張量積曲面的特點是將曲面問題化解為簡單的曲線問題來處理,適用于拓撲上呈矩形的曲面形狀。映射空間域參數(shù)域vu

張量積曲面13切矢方向與模:方向相同,模不同,G1連續(xù);方向相同,模相同,C1連續(xù);連續(xù)性都我Ck曲線r1(u)的末端和曲線r2(v)的首端相連,其不同階次連續(xù)性的要求如下:位置連續(xù)(C0):曲線段r1(u)的末端與曲線段r2(v)的首端到達位置連續(xù)的條件為:r1(1)=r2(0)斜率連續(xù)(C1):曲線段r1(u)的末端與曲線段r2(v)的首端到達斜率連續(xù)的條件為:假設(shè)k=1,說明曲線段r1(u1)的末端切矢與曲線段r2(u2)的首端切矢方向相同、模長相等,稱為C1連續(xù)。假設(shè)k≠1,那么說明兩段曲線在公共連接點處切矢方向相同,但模長不相等,這種情況是幾何連續(xù)的,稱為G1連續(xù),也稱視覺連續(xù)。曲線曲面的光滑連接(要求掌握)14曲率連續(xù)(C2):

兩曲線段曲率連續(xù)應滿足:(1)位置連續(xù);(2)斜率連續(xù);(3)曲率相等且主法線方向一致。對于曲面片,假設(shè)兩個曲面片在公共連接線上處處滿足上述各類連續(xù)性條件,那么兩個曲面片之間有同樣的結(jié)論。幾何意義是:曲線段r2(u)首端的二階導矢應處在由曲線段r1(v)末端的二階導矢和一階導矢所張成的平面內(nèi)。G2連續(xù)滿足條件:C2連續(xù)滿足條件:曲線曲面的光滑連接15曲線設(shè)計根底插值曲線和擬合曲線〔InterpolatecurveandFitcurve〕原始數(shù)據(jù)點精確原始數(shù)據(jù)點不精確XYX’Y’由一組基函數(shù)及相聯(lián)系的系數(shù)矢量來表示:采用不同的基函數(shù),曲線的數(shù)學表示方法就不同?;瘮?shù)一旦確定,系數(shù)矢量就完全定義了曲線。計算機輔助幾何設(shè)計(CAGD)中的曲線的一般表示形式標準基表示具有幾何不變性。即同樣的點在不同坐標系中生成的曲線相同。拋物線方程不具有幾何不變性。若稱為規(guī)范基。16n次多項式的全體構(gòu)成n次多項式空間,在其中任選一組線性無關(guān)的多項式都可以作為基。冪基ui,i=0,1,…,n是最簡單的多項式基,相應的參數(shù)多項式曲線方程為:對于給定的n+1個數(shù)據(jù)點Pi,i=0,1,2,…,n,欲構(gòu)造其插值曲線或逼近曲線,必先得到對應于各數(shù)據(jù)點Pi的參數(shù)值ui,ui是一個嚴格遞增的序列△U:u0<u1<…<un

參數(shù)多項式曲線17采用不同的參數(shù)化,得到的曲線也不同。常用的參數(shù)化方法:(1)

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

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

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

修正弦長參數(shù)化對給定數(shù)據(jù)點實行參數(shù)化,將參數(shù)值ui代入上述方程,使之滿足插值條件:,i=0,1,…,n得一組線性方程組:

參數(shù)多項式曲線18解線性方程組,可得唯一解。冪基多項式曲線方程中的系數(shù)矢量幾何意義不明確,構(gòu)造曲線時,需解線性方程組,n較大時,不可取。其它多項式插值曲線如Lagrange、Newton、Hermite等較之冪基多項式曲線在計算性能等方面有較大改進,但總體上多項式曲線存在兩個問題:l

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

整體計算,一個數(shù)據(jù)點的微小改動,可能引起曲線整體大的波動。19由于高次多項式曲線存在缺陷,單一低次多項式曲線又難以描述復雜形狀的曲線。所以采用低次多項式按分段的方式在一定連續(xù)條件下拼接復雜的組合曲線是唯一的選擇。低次多項式組合曲線以三次多項式為例:如何選擇基函數(shù)使系數(shù)具有幾何意義,且操作方便,易于修改是曲線曲面設(shè)計方法的開展方向。20y1(x)=a1+b1x+c1x2+d1x3y2(x)=a2+b2x+c2x2+d2x3y3(x)=a3+b3x+c3x2+d3x3“線動成面〞21三次樣條函數(shù)〔Spline〕Schoenberg于1946年提出,國外60年代廣泛研究,國內(nèi)70年代開始。R(x)—梁的曲率半徑M(x)—作用在梁上的彎矩E—材料的彈性模量I—梁橫截面的慣性矩在梁彎曲不大的情況下,y′<<1,簡化為:y′′(x)~M(x)y(x)是x的三次多項式,這就是插值三次樣條函數(shù)的物理背景。

樣條曲線的物理背景樣條(spline)是富有彈性的細木條或有機玻璃條。早期船舶、汽車、飛機放樣時用壓鐵壓在樣條上的一系列型值點上,調(diào)整壓鐵到達設(shè)計要求后繪制其曲線,稱為樣條曲線y(x)。7.2三次樣條曲線曲面22物理樣條的性質(zhì)

樣條是物質(zhì)連續(xù)的,相當于函數(shù)C0連續(xù);樣條在壓鐵兩側(cè)斜率相同,相當于函數(shù)C1連續(xù);樣條在壓鐵兩側(cè)曲率相同,相當于函數(shù)C2連續(xù);23三次樣條函數(shù)的數(shù)學描述在區(qū)間[a,b]上給定一個分割:a=x1<x2<???<xn=b,那么稱在區(qū)間[a,b]上滿足以下條件的函數(shù)S(x)為三次樣條函數(shù):〔1〕在每個子區(qū)間[xi-1,xi]〔i=1,2,???,n〕上為三次多項式;〔2〕在整個區(qū)間[a,b]上具有直到二階連續(xù)的導數(shù),即在內(nèi)節(jié)點xi處,i=2,3,???,n-1,k=0,1,2〔3〕給定一組型值點〔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ù)有兩種常用的表達方式一種是用型值點處的一階導數(shù)表示的m關(guān)系式;一種是用型值點處二階導數(shù)表示的M關(guān)系式。本書重點介紹m關(guān)系式。25用型值點處的一階導數(shù)表示插值三次樣條函數(shù)―m關(guān)系式

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

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

將yi(x)代入,得:yi(x)=ai+bix+cix2+dix3(xi-1,yi-1)(xi,yi)mi-1mi(x0,y0)(xn,yn)mnm0圖7-4型值點和斜率(xi+1,yi+1)mi+1yi+1(x)=ai+1+bi+1x+ci+1x2+di+1x326將所求系數(shù)代入樣條函數(shù)表達式,得:27式中xi-1≤x≤xi(i=1,2,…,n)上述公式為插值三次樣條函數(shù)的根本公式。只要求解出型值點處的斜率mi(i=0,1,2,…,n),就可以應用上述公式計算插值三次樣條函數(shù)的函數(shù)值、一階導數(shù)和二階導數(shù)。以(xi-1+hi)代替xi,代入yi(x)的表達式,并按(x-xi-1)的冪次整理成如下矩陣表達式:28插值三次樣條函數(shù)的矩陣表達式:式中xi-1≤x≤xi(i=1,2,…,n)假設(shè)令hi=1,t=x-xi-1,0≤t≤1,那么得到均勻參數(shù)插值三次樣條。1963年美國波音公司的Ferguson用于飛機設(shè)計的參數(shù)三次方程即是均勻參數(shù)插值三次樣條曲線:即為:三次Hermite樣條曲線,其中P(t)表示位置矢量,P′(t)表示切矢

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

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

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

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

〔1〕給定一組型值點Pi(xi,yi,zi),i=0,1,…,n,構(gòu)造三個關(guān)于參數(shù)u的插值三次樣條函數(shù):〔2〕計算各數(shù)據(jù)點Pi的參數(shù)值ui,參數(shù)u有多種選擇,采用累加弧長是最直觀的。但由于在得到曲線之前,無法計算弧長。實際應用中多采用累加弦長作為參數(shù)構(gòu)造樣條曲線,并稱其為累加弦長參數(shù)樣條曲線,簡稱參數(shù)樣條曲線。ui的計算公式如下:所得ui是一個嚴格遞增的序列:u0<u1<…<un36三次樣條曲線

〔3〕依據(jù)參數(shù)及型值點的數(shù)據(jù)表,分別構(gòu)造插值樣條函數(shù)x=x(u),y=y(u),z=z(u),得到分段三次多項式函數(shù)組合的參數(shù)樣條曲線。uu0u1u2…unxx0x1x2…xnyy0y1y2…ynzz0z1z2…zn37實際應用中很難給出數(shù)據(jù)點處的切矢。采用不同的方法計算切矢,生成的曲線不相同。這說明這種方法還不是純幾何的方法,根據(jù)給定的數(shù)據(jù)點,不能唯一地確定曲線。繪圖過程中幾何意義不夠明顯。切矢計算是整體求解,改變一點,所有切矢計算結(jié)果都發(fā)生變化,不局部局部修改性。對于均勻參數(shù)三次樣條曲線,當相鄰弦長相差懸殊時,弦長短的曲線段因兩端切矢模長與弦長相比過大而出現(xiàn)尖點或紐結(jié)。當型值點分布不勻稱時,不適宜構(gòu)造參數(shù)樣條曲面。三次樣條函數(shù)的特點

型值點分布勻稱情形

型值點分布不勻稱情形38Bézier曲線是法國雷諾汽車公司的工程師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為相對位置矢量(注:Bézier本人也不能解釋該公式的來源)39當n=3時:7.3Bézier曲線和曲面f0(t)f1(t)f2(t)f3(t)11040英國的Forest于1972年將上述Bézier曲線中的控制多邊形頂點改為絕對位置矢量的Bernstein基表示形式:0≤t≤1i=0,1,…,n當n=3時:

B0,3(t)B2,3(t)B1,3(t)B3,3(t)d0d1d2d3di為絕對位置矢量41三次Bézier曲線的矩陣表示形式為:42單一Bézier曲線不能滿足描述復雜形狀的要求,必須采用組合Bézier曲線。參數(shù)連續(xù)是對曲線光順性的過分要求,在組合曲線的連接點處,參數(shù)連續(xù)不僅要求切矢具有共同的切矢方向,而且要求切矢模長相等。幾何連續(xù)只要求在連接點處切矢方向相同,切矢模長可以不相等,由此產(chǎn)生了不同控制手段的多種曲線,如Gamma()樣條曲線、Beta()樣條曲線等,給曲線設(shè)計提供了極大的靈活性。假設(shè)要組合Bézier曲線在連接點處具有一定的連續(xù)性,構(gòu)成曲線的位置點矢量之間存在約束條件,可用Bézier曲線方程的一階、二階導數(shù)推導。d0d1d2d3組合Bézier曲線示意圖Bézier曲線的特點43Bézier曲線的優(yōu)點是具有明確的幾何意義,給定數(shù)據(jù)點的控制多邊形確定曲線的形狀,在設(shè)計過程中具有很強的可操作性。對于局部參數(shù)的Bézier曲線,當弦長差異較大時,弦長較長的那段曲線過分平坦,弦長較短的那段曲線那么臌得厲害。d0d1d2d3組合Bézier曲線示意圖Bézier曲線的特點44給定空間16個位置點rij,可以確定一張三次Bezier曲面片。Bézier曲面片uvrij首先生成四條v向的三次Bezier曲線:45根據(jù)“線動成面〞的思想,按設(shè)定間隔取,在四條v線上取點,沿u向生成三次Bezier曲線:Bézier曲面片uvV*46Bézier曲面片uv將u,v向曲線方程合并得:47Bézier曲面片的矩陣表達式rijuv48用Bézier曲面片組合曲面時,曲面拼合處位置連續(xù),要求:r1(1,v)=r2(0,v)[1111]AM1AT=[1000]AM2AT

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

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

0≤t=≤1,i=0,1,…,n-3在分段連接點處B樣條曲線的值和導矢量為:均勻B樣條曲線54均勻B樣條曲線55均勻B樣條曲線56對于三次均勻B樣條曲線,計算對應于參數(shù)[ui,ui+1]這段曲線上的一點,要用到Ni-3,3(u)、Ni-2,3(u)、Ni-1,3(u)、Ni,3(u)四個基函數(shù),涉及ui-3到ui+4共8個節(jié)點的參數(shù)值。57B樣條曲線的基函數(shù)是局部支撐的,修改一個數(shù)據(jù)點,在修改處影響最大,對其兩側(cè)的影響快速衰減,其影響范圍只有前后各K段曲線,對曲線的其它局部沒有影響。這是計算機輔助幾何設(shè)計所需要的局部修改性。均勻B樣條曲線未考慮曲線數(shù)據(jù)點的分布對參數(shù)化的影響,當曲線弦長差異較大時,弦長較長的曲線段比較平坦,而弦長較短的曲線段那么臌漲,甚至于因過“沖〞而產(chǎn)生“紐結(jié)〞。58均勻B樣條曲面給定16個頂點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

,對應于vk曲線C1、C2、C3和C4上可得到V1k、V2k、V3k和V4k四個點,該四點構(gòu)成u向的一個特征多邊形,定義一條新的曲線P(u,vk);uvC4C3C1C2V1kV3kV4kV2k當參數(shù)vk在[0,1]之間取不同值時,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個角點,可采用B樣條曲線重節(jié)點的方法,即在v向和u向構(gòu)建曲線時,分別在特征多邊形的端點處作重節(jié)點處理,那么生成的曲線過端點,雙向計算后得到的曲面通過特征網(wǎng)格的4個角點。上述過程表達的是給定特征網(wǎng)格,定義一張曲面。實際應用中,還需要根據(jù)給定的曲面反求特征網(wǎng)格的頂點,以便進行新的設(shè)計。這局部內(nèi)容將在后面相關(guān)章節(jié)介紹曲線反求控制多邊形頂點的根底上簡要介紹。62考慮曲線弦長的影響,那么曲線的基函數(shù)不再具有同樣的格式,必須根據(jù)給定數(shù)據(jù)點進行弦長參數(shù)化,然后根據(jù)基函數(shù)的定義用如下的曲線方程計算各段曲線上的點:非均勻B樣條曲線考慮了弦長的影響,曲線不會因為節(jié)點分布不均勻而產(chǎn)生過沖和紐結(jié)。非均勻B樣條曲線比均勻B樣條曲線具有更好的光順性。7.5非均勻有理B樣條曲線曲面非均勻B樣條曲線曲面非均勻B樣條均勻B樣條63根據(jù)曲線方程,計算曲線上的點需要對應參數(shù)區(qū)間上的基函數(shù)的值和控制多邊形的頂點。基函數(shù)的值根據(jù)給定數(shù)據(jù)點的參數(shù)化進行計算??刂贫噙呅蔚捻旤c依據(jù)曲線是否通過給定數(shù)據(jù)點確定,假設(shè)生成的曲線不通過給定數(shù)據(jù)點,那么給定數(shù)據(jù)點就是控制多邊形頂點。假設(shè)生成的曲線通過給定數(shù)據(jù)點,那么首先必須根據(jù)給定數(shù)據(jù)點反求控制多邊形的頂點,然后再代入曲線。非均勻B樣條曲線的實現(xiàn)64給定數(shù)據(jù)點di(i=0,1,…,n-1)就是控制多邊形的頂點。對于開口曲線,n個數(shù)據(jù)點只畫n-3段曲線,需n-2個節(jié)點參數(shù)。而計算[Ui,Ui+1]上的一點,要用到除它們之外的前3個和后3個節(jié)點參數(shù),所以在首尾各添加3個節(jié)點參數(shù),一共需要n+4個節(jié)點參數(shù)值。為使曲線過給定數(shù)據(jù)的首末點,令U0=U1=U2=0;Un+1=Un+2=Un+3=1;全部節(jié)點參數(shù)為:U0=U1=U2=0;UK,UK+1,…,Un;Un+1=Un+2=Un+3=1;不過點三次非均勻B樣條曲線65用Hartley-Judd方法,即所畫曲線段對應的控制多邊形的長度與總控制多邊形的長度之比確定節(jié)點參數(shù)。不過點三次非均勻B樣條曲線66對于閉合曲線,n個數(shù)據(jù)點畫n段曲線,需n+1個節(jié)點參數(shù)曲線;首尾各添加3個節(jié)點參數(shù),共n+7個節(jié)點參數(shù)。由于不過點閉合曲線,不通過控制多邊形的首末點,全部節(jié)點參數(shù)為:

U0=0<U1<U2<UK<UK+1<…<Un+3<Un+4<Un+5<Un+6=1各節(jié)點的參數(shù)值采用Hartley-Judd方法。計算出節(jié)點參數(shù)后,就可以計算基函數(shù)Ni,K(u)的值,然后用曲線方程計算各段曲線上的點67對于過點曲線,給定的數(shù)據(jù)點Pi(i=0,1,…,n-1)是曲線上的點。由曲線方程知,必須先計算出節(jié)點參數(shù),再計算基函數(shù)Ni,K(u)的值,代入曲線方程,才能反算出控制多邊形的頂點:

n個數(shù)據(jù)點,反求出n+2個控制頂點,畫n-1段曲線,需n個節(jié)點參數(shù);首尾各添加3個節(jié)點參數(shù),一共需要n+6個節(jié)點參數(shù)值;在曲線首端重3段曲線首段的長度,在曲線的末端重3段曲線末段的長度。所有節(jié)點參數(shù)為:

U0=0<U1<U2<UK<UK+1<…<Un+2<Un+3<Un+4<Un+5=1i=1,2,……,n+5,L為包含附加段在內(nèi)的總長。過點三次非均勻B樣條曲線68根據(jù)節(jié)點矢量計算基函數(shù)Ni,K(u)的值,代入曲線方程可以計算n個的曲線上的點,得如下方程:

寫成矩陣形式如下:對于開口曲線,d0=P0,dn+1=Pn-1,上述方程組是“追趕法〞能夠求解的三對角方程。求出d0,d1,……,dn,dn+1共n+2個控制頂點,即可以畫出n-1曲線?!查]合曲線省略〕69非均勻三次B樣條曲面非均勻三次B樣條曲面的生成過程與均勻B樣條曲面相同。根據(jù)“線動成面〞的思路,首先沿一參數(shù)方向生成曲線,然后讓另一參數(shù)在[0,1]范圍內(nèi)變化,在已生成的曲線上取點構(gòu)成新的控制多邊形,生成曲面上的一條線,隨著v的變化,所生成的曲線構(gòu)成一張曲面。應用非均勻B樣條生成曲面有一定的局限性,當同一參數(shù)方向各型值點的分布規(guī)律接近時,所生成的非均勻B樣條曲面結(jié)果比較滿意。70wi,i=0,1,…,n稱為權(quán)因子;Ni,K(u)是B樣條的基函數(shù)有理B樣條曲線非均勻B樣條考慮節(jié)點分布不勻稱的影響,但與所有已介紹的計算曲線一樣,非均勻B樣條不能精確表達二次曲線曲面.采用有理B樣條,可以統(tǒng)一表達自由曲線曲面和二次曲線曲面。有理B樣條曲線的表達式為:當Ni,K(u)是均勻基函數(shù)時,p(u)為均勻有理B樣條曲線;當Ni,K(u)是非均勻基函數(shù)時,p(u)為非均勻有理B樣條

(Non-UniformRationalB-Spline

,簡稱NURBS)曲線;通過合理的定義權(quán)系數(shù),NURBS曲線能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標準之中。71二次有理B樣條曲線表達式72二次有理B樣條曲線表達式由式〔7-24〕可推導出:書上有誤書上有誤73非均勻有理B樣條曲線曲面有理B樣條曲線采用非均勻的基函數(shù),那么稱為非均勻有理B樣條曲線〔non-uniformrationalb-spline,NURBS〕曲線。非均勻有理B樣條曲線的表達式為:其中,ωi〔i=0,1,…,n〕稱為權(quán)因子。NURBS曲線在有理B樣條曲線的根底上,考慮了節(jié)點分布不勻稱對基函數(shù)的影響,同時能夠精確地描述二次圓錐曲線。目前已納入到產(chǎn)品形狀定義的工業(yè)標準之中。很多軟件或程序具有生成NURBS曲線和曲面的功能。74曲線設(shè)計方法的關(guān)鍵在于基函數(shù)的選擇,選擇適宜的基函數(shù)能夠使系數(shù)矢量具有更明確的幾何意義,繪圖操作簡單直觀。基函數(shù)和參數(shù)化方法的選擇對曲線的精度、光順性、局部修改性具有決定性的影響。整個曲線設(shè)計方法的改進方向是在提高精度、保證光順性的同時追求靈活的操作、明確的幾何意義和良好的局部修改性。曲線設(shè)計結(jié)論:樣條函數(shù)Bézier

B樣條函數(shù)757.6用OpenGL生成曲線和曲面在OpenGL中,GLU函數(shù)庫提供了一個NURBS接口。用戶需要提供的數(shù)據(jù)包括控制點、節(jié)點等數(shù)據(jù),控制點描述曲線的大致形狀,節(jié)點控制B樣條函數(shù)的形狀。繪制一條NURBS曲線的步驟:〔1〕提供控制點序列和節(jié)點序列;〔2〕創(chuàng)立一個NURBS對象,設(shè)置NURBS對象屬性;〔3〕繪制曲線;創(chuàng)立一個NURBS對象,用如下兩條語句:GLUnurbsObj*theNurbs;theNurbs=gluNewNurbsRender();創(chuàng)立對象后,用如下函數(shù)設(shè)置NURBS對象屬性:voidgluNurbsProperty(GLUnurbsObj*nobj,GLenumproperty,Glfloatvalue);曲線的繪制是在gluBeginCurve()/gluEndCurve()函數(shù)對中完成。繪制曲線的函數(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} };//給定控制點 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é)點 glColor3f(0.0f,0.0f,1.0f); GLUnurbsObj*theNurb;//創(chuàng)立NURBS對象theNurb=gluNewNurbsRenderer(); gluNurbsProperty(theNurb,GLU_SAMPLING_

溫馨提示

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

評論

0/150

提交評論