第七章 自由曲線曲面_第1頁
第七章 自由曲線曲面_第2頁
第七章 自由曲線曲面_第3頁
第七章 自由曲線曲面_第4頁
第七章 自由曲線曲面_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章第七章n7.1 基本概念n7.4 Bezier曲線n7.5 Bezier曲面n7.6 B樣條曲線n7.7 B樣條曲面n 本章總結(jié) 工業(yè)產(chǎn)品的幾何形狀大致可分為兩類:一類由初等解析曲面,如平面、圓柱面、圓錐面、球面和圓環(huán)面等組成,可以用初等解析函數(shù)完全清楚地表達(dá)全部形狀。另一類由自由曲面組成,如汽車車身、飛機機翼和輪船船體等曲面,不能用初等解析函數(shù)完全清楚地表達(dá)全部形狀,需要構(gòu)造新的函數(shù)來進(jìn)行研究,這些研究成果形成了計算機輔助幾何設(shè)計(Computer Aided Geometric Design,CAGD)學(xué)科。汽車曲面 已知直線段的起點坐標(biāo)P0(x0,y0)和終點坐標(biāo)P1(x1,y1)

2、,直線段的顯式方程表示為 )(001010 xxxxyyyy隱函數(shù)方程表示為 0)(),(001010 xxxxyyyyyxf參數(shù)方程表示為 tyyyytxxxx)()(010010,t0,1 插值(Interpolation):當(dāng)用一組數(shù)據(jù)點來指定曲線的形狀時,曲線精確地通過給定的數(shù)據(jù)點且形成光滑的曲線,稱為曲線的插值。逼近(Approximation):當(dāng)用一組控制點來指定曲線的形狀時,曲線被每個控制點所吸引,但實際上并不經(jīng)過這些控制點,稱為曲線的逼近 。插值與逼近統(tǒng)稱為擬合(Fitting)。逼近曲線插值曲線 通常單一的曲線段或曲面片難以表達(dá)復(fù)雜的形狀,必須將一些曲線段連接成組合曲線,或

3、將一些曲面片連接成組合曲面,才能描述復(fù)雜的形狀。為了保證在連接點處光滑過渡,需要滿足連續(xù)性條件。 參數(shù)連續(xù)性:C0,指相鄰兩段曲線在結(jié)合點處具有相同的坐標(biāo)。C1,指相鄰兩段曲線在結(jié)合點處具有相同的一階導(dǎo)數(shù)。C2,指相鄰兩段曲線在結(jié)合點處具有相同的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。幾何連續(xù)性:G0,指相鄰兩段曲線在結(jié)合點處具有相同的坐標(biāo)。G1,指相鄰兩段曲線在結(jié)合點處的一階導(dǎo)數(shù)成比例 。G2,指相鄰兩段曲線在結(jié)合點處的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)成比例。 零階連續(xù)性 一階連續(xù)性 二階連續(xù)性 法國雷諾汽車公司的工程師Bezier和法國雪鐵龍汽車公司的de Casteljiau分別提出了一種新的參數(shù)曲線表示方法,稱為Bez

4、ier曲線。幾種典型的三次Bezier曲線Bezier 給定n+1個控制點Pi(i0,1,2n),稱為n次Bezier曲線。 t0,1 式中,Pi(i0,1,2n)是控制多邊形的n+1個控制點,控制多邊形是連接n條邊構(gòu)成的多邊形。Bi,n(t) 是Bernstein基函數(shù),其表達(dá)式為: )()(,0tBPtpniniiininittinintB)1 ()!( !)(, 在實際應(yīng)用中,最常用的是三次Bezier曲線,其次是二次Bezier曲線,高次Bezier曲線一般很少使用。 當(dāng)n1時,Bezier曲線的控制多邊形有二個控制點P0和P1,Bezier曲線是一次多項式。一次Bezier曲線是一段

5、直線。 101 ,10Pt)(1 )()(PttBPtpiii 當(dāng)n2時,Bezier曲線的控制多邊形有三個控制點P0、P1和P2,Bezier曲線是二次多項式。二次Bezier曲線是一段拋物線。 P t)1 (2Pt)(1 )()(221022,20PtttBPtpiii 當(dāng)n3時,Bezier曲線的控制多邊形有四個控制點P0、P1、P2和P3,Bezier曲線是三次多項式。 三次Bezier曲線是自由曲線。 Pt P t)-(1t 3)1 (3Pt)(1 )()(332212033 ,30PtttBPtpiii Pt P )3tt 3()363 (1)P3t-3tt(33223123023

6、Pttt,。 三次貝塞爾曲線寫成矩陣形式為3210231)(PPPPMtttuPbe0001003303631331beM,t0,1 三次三次Bezier曲線的曲線的Bernstein基函數(shù):基函數(shù): 3233 , 0)1 (133)(tttttB2233 , 1)1 (3363)(ttttttB)1 (333)(2233 , 2tttttB33 , 3)(ttB4個基函數(shù) 在區(qū)間0,1范圍內(nèi),每個基函數(shù)均不為零,說明不能使用控制多邊形對曲線的形狀進(jìn)行局部調(diào)整,如果要改變某一控制點位置,整條曲線都將受到影響。 Bernsteint0,1(i0,1,2n) iniinininittCttinin

7、tB)1 ()1 ()!( !)(,0, 00, 1)0(,iiBnininiBni, 0, 1) 1 (,, 這里用到:001,0!=1 0)(,tBni1)1 ()1 ()(00,nniiniinninittttCtB,t0,1 )(,)1 (1 ()1 ()1 (innininnninttCtBinninCC因為:)()1 ()1 (,tBttCtBniiniinnin)()()(1,1, 1,tBtBntBninini,(i0,1,2n) Bernstein基函數(shù)的性質(zhì)決定了Bezier曲線的性質(zhì) 當(dāng)t0時,p(0)P0;當(dāng)t1時,p(1)Pn。 )()()(1,1, 110tBtBP

8、ntpnininii)()()()(1, 111,011,001, 10tBPtBPtBPtBPnnnnn)()()()(1,1, 11, 111,21tBPtBPtBPtBPnnnnnnnnnnnn )()(11, 11niniiitBPPn )()0(01PPnp )() 1 (1nnPPnp, 在起始點t0, B0,n-1(0)1,其余項均為0,故有:在終止點t1, Bn-1,n-1(1)1,其余項均為0,故有: 2121202(t)BPP(P)n(n(t)pi,niinii當(dāng)t=0時, )()(1)2(100112012PPPP)n(nPPP)n(n)(p當(dāng)t=1時, )()(1)2(

9、1121121nnnnnnnPPPP)n(nPPP)n(n)(p 起始點和終止點的二階導(dǎo)數(shù)分別取決于最開始的3個控制點和最后的3個控制點。 iniPP*由控制點,(i0,1,2n),構(gòu)造出的新Bezier曲線與原Bezier曲線形狀相同,但走向相反。ninininniniinniniitBPtBPtBPtp0,0,0*)1 ()()()()1 ()1 (,0tptBPninii 這個性質(zhì)說明Bezier曲線在控制多邊形的起點和終點具有相同的性質(zhì) 0)(,tBni1)(0,ninitB由Bernstein基函數(shù)的正性和權(quán)性可知,在閉區(qū)間0,1內(nèi), ,而且這說明Bezier曲線位于控制多邊形構(gòu)成的

10、凸包之內(nèi),而且永遠(yuǎn)不會超出凸包的范圍。凸包 根據(jù)以上性質(zhì)知道,Bezier曲線是擬合曲線,在控制多邊形的第一個頂點和最后一個頂點處進(jìn)行插值,其形狀直接受其余控制點的影響。(1)曲線過控制多邊形的起始點和終止點。(2)曲線起始點處的一階導(dǎo)數(shù)是通過第一個控制點和第二個控制點之間的矢量來定義;曲線終止點處的一階導(dǎo)數(shù)是通過最后一個控制點和倒數(shù)第二個控制點之間的矢量來定義。(3)曲線在起始點的二階導(dǎo)數(shù)依賴于起始的3個控制點;曲線在終止點的二階導(dǎo)數(shù)依賴于最后的3個控制點。 Bezier曲線上的點,可以使用Bezier曲線方程直接計算,但使用de Casteljau遞推算法則要簡單的多。 給定空間n+1個控

11、制點Pi(i=0,1, 2n)及參數(shù)t,de Casteljau遞推算法表述為)()()1 ()(111tPttPttPririri 1 , 0 ;, 1 , 0 ;, 2 , 1trninr(7-16) 當(dāng)n=3時,有 0, 31 , 0, 22 , 1 , 0, 1iririr三次Bezier曲線遞推如下 )()()1 ()()()()1 ()()()()1 ()(030212020111010010tPttPttPtPttPttPtPttPttP)()()1 ()()()()1 ()(121121111020tPttPttPtPttPttP)()()1 ()(212030tPttPttP

12、其中:規(guī)定:iiPtP)(0riPnP0定義Bezier曲線的控制點編號為de Casteljau已經(jīng)證明,當(dāng)r=n時,根據(jù)式(7-16)可以繪制n次Bezier曲線。,其中,r為遞推次數(shù)。表示曲線上的點。第一級遞推第二級遞推第三級遞推 de Casteljau算法的基礎(chǔ)是在線段P0P1上選擇一個點P(t),使得P(t)點劃分P0P1為 t:(1-t)兩段,如圖7-17所示。給定點P0 、P1的坐標(biāo)以及t的值,點P(t)的坐標(biāo)為10010)1 ()()(tPPtPPtPtP,t0,1 (7-17)圖7-17 de Casteljau算法基礎(chǔ) 依次對原始控制多邊形的每一邊執(zhí)行同樣的定比分割,所得

13、的分點就是第一級遞推生成的中間頂點 1iP(i0,1,,n-1),重復(fù)進(jìn)行下去,直到rn,得到一個中間頂點 (i0,1,,n-2)。 2iP重復(fù)進(jìn)行下去,直到rn,得到一個中間頂點 nP0該點的軌跡即為Bezier曲線上的點P(t)。 以n3的三次Bezier曲線為例,講解de Casteljau算法的幾何作圖分法。取t=0,t1/3,t2/3,t=1, 作圖繪制 。 圖7-18 繪制t=1/3的點nP0圖7-19 繪制t=2/3的點圖7-20 點的運動軌跡nP0de Casteljau算法遞推出的riP呈直角三角形。當(dāng)n3時,如圖7-21所示。圖7-21 de Casteljau遞推三角形v

14、oid CTestView:DrawBezier()CDC* pDC=GetDC();pDC-MoveTo(P0);for(int k=0;k=n;k+)ptk.x=Pk.x;ptk.y=Pk.y; for(double t=0.0;tLineTo(Round(pp0n.x),Round(pp0n.y);ReleaseDC(pDC);1.繪制Bezier曲線函數(shù)void CTestView:deCasteljau(double t,CP2 *p)for(int k=0;k=n;k+)ppk0=pk;for(int r=1;r=n;r+)/de Casteljau遞推公式for(int i=0;

15、i4,q4),構(gòu)造雙三次B樣條曲面。 控制點矩陣為 qpppqqjiPPPPPPPPPP,1 ,0, 11 , 10, 1, 01 , 00, 0, 因為雙三次B樣條曲面的控制頂點矩陣是44的,所以需要將Pi,j控制頂點矩陣進(jìn)行分塊。雙三次B樣條曲面的分塊頂點矩陣為 3, 32, 31, 3, 33, 22, 21, 2, 23, 12, 11, 1, 13,2,1,srsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrsrPPPPPPPPPPPPPPPPP (7-39) 式中,r=0,p+1-4;s=0,q+1-4。例例7-1 7-1 已知pq5,空間控制網(wǎng)格Pi,j共有36個頂點

16、,請計算其分塊矩陣。5 , 54, 53 , 52, 51 , 50, 55 , 44, 43 , 42, 41 , 40, 45 , 34, 33 , 32, 31 , 30, 35 , 24, 23 , 22, 21 , 20, 25 , 14, 13 , 12, 11 , 10, 15 , 04, 03 , 02, 01 , 00, 0,PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPji分塊矩陣共有9個 3 , 32, 31 , 30 , 33 , 22, 21 , 20 , 23 , 12, 11 , 10 , 13 , 02, 01 , 00 , 00 ,

17、 0PPPPPPPPPPPPPPPPP3 , 42, 41 , 40, 43 , 32, 31 , 30, 33 , 22, 21 , 20, 23 , 12, 11 , 10, 10, 1PPPPPPPPPPPPPPPPP3 , 52, 51 , 50, 53 , 42, 41 , 40, 43 , 32, 31 , 30, 33 , 22, 21 , 20, 20, 2PPPPPPPPPPPPPPPPP4, 33 , 32, 31 , 34, 23 , 22, 21 , 24, 13 , 12, 11 , 14, 03 , 02, 01 , 01 , 0PPPPPPPPPPPPPPPPP4

18、, 43 , 42, 41 , 44, 33 , 32, 31 , 34, 23 , 22, 21 , 24, 13 , 12, 11 , 11 , 1PPPPPPPPPPPPPPPPP4, 53 , 52, 51 , 54, 43 , 42, 41 , 44, 33 , 32, 31 , 34, 23 , 22, 21 , 21 , 2PPPPPPPPPPPPPPPPP5 , 34, 33 , 32, 35 , 24, 23 , 22, 25 , 14, 13 , 12, 15 , 04, 03 , 02, 02, 0PPPPPPPPPPPPPPPPP5 , 44, 43 , 42, 45

19、, 34, 33 , 32, 35 , 24, 23 , 22, 25 , 14, 13 , 12, 12, 1PPPPPPPPPPPPPPPPP5 , 54, 53 , 52, 55 , 44, 43 , 42, 45 , 34, 33 , 32, 35 , 24, 23 , 22, 22, 2PPPPPPPPPPPPPPPPP36個控制點的雙三次B樣條曲面雙三次B樣條曲面繪制的花瓶 本章講解了Bezier曲線和B樣條曲線以及雙三次Bezier曲面和雙三次B樣條曲面。Bezier曲線曲面與B樣條曲線曲面均屬于逼近范疇。B樣條曲線和Bezier曲線的最主要差別在于基函數(shù)不同。Bernstein

20、基函數(shù)是一個整體函數(shù),而B樣條基函數(shù)一個分段函數(shù),所以B樣條曲線可以進(jìn)行局部控制點調(diào)整。Bezier曲線曲面的階次與控制多邊形的頂點數(shù)有關(guān),B樣條曲線曲面的階次可以自由決定。這樣如果控制多邊形頂點數(shù)超過4個時,兩段三次Bezier曲線或兩張雙三次Bezier曲面片之間連接時就存在拼接的問題,而B樣條曲線曲面可以自由地擴展到多個控制點,始終保持階次不變,而且擴展后的分段曲線或分段曲面實現(xiàn)了自然連接。 根據(jù)二次Bezier曲線的基函數(shù),使用MFC編程繪制圖7-46所示二次Bezier曲線,要求可以使用鼠標(biāo)左鍵拖動控制多邊形的頂點,同時曲線能隨之發(fā)生變化。 圖7-46 二次Bezier曲線2.根據(jù)三

21、次Bezier曲線的基函數(shù),使用MFC編程繪制圖7-47所示的三次Bezier曲線。要求可以使用鼠標(biāo)左鍵拖動控制多邊形的頂點,同時曲線能隨之發(fā)生變化。 圖7-47 三次Bezier曲線3.在屏幕上使用鼠標(biāo)繪制任意控制點的控制多邊形,基于de Casteljau算法繪制如圖7-48所示的Bezier曲線。圖7-48 de Casteljau算法 4.在屏幕上使用鼠標(biāo)左鍵繪制數(shù)量大于4的任意頂點形成控制多邊形,單擊鼠標(biāo)右鍵繪制三次B樣條曲線,同時在控制多邊形的每一個三角形內(nèi)用虛線表示三次B樣條曲線的幾何生成原理,效果如圖7-49所示,請使用MFC編程實現(xiàn)。 圖7-49 三次B樣條曲線生成原理 5.

22、使用MFC編程,分別繪制4個控制點的三次Bezier曲線與三次B樣條曲線,觀察二者與控制多邊形的逼近程度,如圖7-50所示。圖7-50 三次B樣條曲線和Bezier曲線 B樣條曲線Bezier曲線6.給定控制網(wǎng)格的16個頂點P0,0(20,0,200),P0,1(0,100,150),P0,2(-130,100,50),P0,3(-250,50,0);P1,0(100,100,150),P1,1(30,100,100),P1,2(-40,100,50),P1,3(-110,100, 0);P2,0(280,90,140),P2,1(110,120,80),P2,2(30,130,30),P2,

23、3(-100,150,-50);P3,0(350,30,150),P3,1(200,150,50),P3,2(50,200,0),P3,3(0,100,-70)。請繪制使用斜等測投影繪制圖7-51所示的雙三次Bezier網(wǎng)格曲面。圖7-51 雙三次Bezier網(wǎng)格曲面 7.使用習(xí)題6的數(shù)據(jù)分別繪制雙三次Bezier曲面的正交投影和透視投影旋轉(zhuǎn)動畫,如圖7-52所示。 圖7-52 動態(tài)旋轉(zhuǎn)Bezier曲面 8.給定7749個包含重點的控制點如下:P0,0(200,-200,100),P0,1(200,-200,100),P0,2(200,-200,100),P0,3(300,100,300),P0,4(-200,-200,100),P0,5(-200,-200,100),P0,6(-200,-200,100);P1,0(200,-200,100),P1,1(200,-200,100),P1,2(200,-200,100),P1,3(300,100,300),P1,4(-200,-200,100),P1,5(-200,-200,100),P1,6(-200,-200,100);P2,0(200,-200,

溫馨提示

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

評論

0/150

提交評論