貝齊爾曲線曲面生成方法_第1頁
貝齊爾曲線曲面生成方法_第2頁
貝齊爾曲線曲面生成方法_第3頁
貝齊爾曲線曲面生成方法_第4頁
貝齊爾曲線曲面生成方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗三 貝齊爾(Bezier)曲線曲面的生成方法 實驗類型:綜合型一、目的與任務(wù)目的:通過學(xué)生上機(jī),了解貝齊爾(Bezier)曲線德卡斯特里奧的遞推算法和貝齊爾(Bezier)曲線的幾何作圖法。任務(wù):熟悉線框建模、表面建模的基本方法。二、內(nèi)容、要求與安排方式1、 實驗內(nèi)容與要求: 貝齊爾(Bezier)曲線曲面的德卡斯特里奧的遞推算法P(t)=Bi,n(t)Q(i)和幾何作圖法; 要求用熟悉的編程語言編制、調(diào)試和運(yùn)行程序,并打印程序清單和輸出結(jié)果。2、實驗安排方式:課外編寫好程序清單,按自然班統(tǒng)一安排上機(jī)。三、實驗步驟 1、熟悉貝齊爾(Bezier)的貝齊爾基函數(shù)和貝

2、齊爾的性質(zhì)2、貝齊爾(Bezier)曲線的德卡斯特里奧的遞推算法;3、貝齊爾(Bezier)曲線的幾何作圖法;4、貝齊爾(Bezier)曲線的德卡斯特里奧的遞推算法;5、貝齊爾(Bezier)曲線的幾何作圖法。6、對幾何作圖法繪制出圖,對德卡斯特里奧的遞推算法編出程序。四、實驗要求 1在規(guī)定的時間內(nèi)完成上機(jī)任務(wù)。 2必須實驗前進(jìn)行復(fù)習(xí)和預(yù)習(xí)實驗內(nèi)容。 3在熟悉命令過程中,注意相似命令在操作中的區(qū)別。 4指定圖形完成后,需經(jīng)指導(dǎo)教師認(rèn)可后,方可關(guān)閉計算機(jī)。 5完成實驗報告一份。五、試驗具體內(nèi)容1, Bezier 曲線的描述在空間給定n + 1 個點P0 ,P1 ,P2 , ,Pn ,稱下列參數(shù)曲

3、線為n 次的Bezier 曲線。P(t) = 6nt = 0PiJ i ,n (t) , 0 t 1其中J i ,n (t) 是Bernstein 基函數(shù),即B i ,n (t) = n !i !(n - i) *t(1-t);i = 0 , ,n一般稱折線P0P1P2 Pn 為曲線P(t) 的控制多邊形;稱點P0 ,P1 ,P2 , ,Pn 為P(t) 的控制頂點。在空間曲線的情況下,曲線P(t) = (x(t) ,y(t) ,z (t) ) 和控制頂點Pi = (Xi ,Yi ,Zi) 的關(guān)系用分量寫出即為:X(t) = 6ni = 0XiJ i ,n (t)Y(t) = 6ni = 0Y

4、iJ i ,n (t)Z(t) = 6ni = 0ZiJ i ,n (t)當(dāng)t 在區(qū)間0 ,1 上變動時,就產(chǎn)生了Bezier 曲線。若只考慮x和y ,就是平面上的Bezier 曲線。以三次Bezier 曲線為例,它可用矩陣形式表示如下:P(t) = t3 t2 t 1- 1 3 - 3 13 - 6 3 0- 3 3 0 01 0 0 0Q(0)Q(1)Q(2)Q(3)0 t 1 2, Bezier 曲線的性質(zhì)Bezier 曲線具有以下性質(zhì):當(dāng)t = 0 時,P(0) = P0 ,故P0 決定曲線的起點,當(dāng)t = 1 時,P(1) = Pn ,故Pn 決定曲線的終點。Bezier 曲線的起點

5、、終點與相應(yīng)的特征多邊形的起點、終點重合。Bezier 曲線P(t) 在P0 點與邊P0P1 相切,在Pn點與邊Pn- 1Pn 相切。Bezier 曲線P(t) 位于其控制頂點P0 ,P1 ,P2 ,Pn 的凸包之內(nèi)。Bezier 曲線P(t) 具有幾何不變性。Bezier 曲線P(t) 具有變差縮減性。3, Bezier 曲線的de Casteljau 算法Paul de Casteljau 發(fā)現(xiàn)了一個Bezier 曲線非常有趣的特性,任何的Bezier 曲線都能很容易地分成兩個同樣階次的Bezier 曲線。圖1 定比分割如圖1 所示,當(dāng)P0 ,P2 固定,引入?yún)?shù)t ,令P0P10P10P

6、1=P1P11P11P2=P10P20P20P11的比值為t : (1 - t) ,即有:P10= (1 - t) P0 + tP1P11= (1 - t) P1 + tP2P20= (1 - t) P10+ tP11t 從0變到1 ,第一、二式是兩條一次Bezier 曲線。將一、二式代入第三式得:P20= (1 - t) 2P0 + 2t (1 - t) P1 + t2P2當(dāng)t 從0 變到1 時,它表示了由P0 、P1 、P2 三個控制頂點形成的一條二次Bezier 曲線。并且表明:這個二次Bezier 曲線P02 可以定義為分別由前兩個頂點(P0 ,P1) 和后兩個頂點(P1 ,P2) 決

7、定的一次Bezier 曲線的線性組合。依次類推,由四個控制點定義的三次Bezier 曲線P03 可被定義為分別由(P0 ,P1 ,P2) 和(P1 ,P2 ,P3) 確定的二條二次Bezier曲線的線性組合,由(n + 1) 個控制點Pi (i = 0 ,1 ,n) 定義的n 次Bezier 曲線P0n 可被定義為分別由前、后n 個控制點定義的兩條(n - 1) 次Bezier曲線P0n- 1 與P1n- 1 的線性組合:Pn0 = (1 - t) Pn- 10 + tPn- 11 t 0 ,1 由此得到Bezier 曲線的遞推計算公式:Pki =Pi k = 0(1 - t)Pk- 1i +

8、 tPk- 1i+1 k = 1 ,2 , ,n ,i = 0 ,1 , ,n - k 這便是de Casteljau 算法。用這一遞推公式,在給定參數(shù)下,求Bezier 曲線上一點P (t) 非常有效。上式中:Pi0 = Pi 是定義Bezier 曲線的控制點,P0n 即為曲線P(t) 上具有參數(shù)t 的點。這一算法可通過簡單的幾何作圖來實現(xiàn),給定參數(shù)t 0 ,1 ,把定義域分成長度為t : (1 - t)的兩段。依次對原始控制多邊形每一邊執(zhí)行同樣的定比分割,所得分點就是第一級遞推生成的中間頂點Pi1 (i = 0 ,1 , ,n - 1) ,對這些中間頂點構(gòu)成的控制多邊形再執(zhí)行同樣的定比分割

9、,得第二級中間頂點Pi2 (i = 0 ,1 , ,n - 2) 。重復(fù)進(jìn)行下去,直到n 級遞推得到一個中間頂點P0n 即為所求曲線上的點P(t) 。當(dāng)t = 1/ 2 時,從(2) 式可知,求Pik 只需進(jìn)行加法和除2 運(yùn)算,在計算機(jī)內(nèi)除2 運(yùn)算只需右移1位,計算速度快。所以通常取t = 1/ 2 最方便,即每次求得Bezier曲線的中點。 如圖2 所示,有0 ,1 ,2 ,3 四個控制點,計算每條線的中點01 ,12 ,23 ,再得中點012 ,123 ,最后得到的中點0123 即在曲線上。四個控制點0 ,01 ,012 ,0123 又定義了左邊的曲線, 四個控制點0123 ,123 ,2

10、3 ,3 又定義了右邊的曲線,重復(fù)對左右的兩條曲線再進(jìn)行定比分割,多次進(jìn)行定比分割后,就可以用直線段代替曲線段3 。圖2 de Casteljau 算法的幾何作圖(t = 1/ 2)六、貝齊爾(Bezier)曲線德卡斯特里奧的遞推算法程序清單#include<stdio.h>#include<math.h>void main()int i,j,k,f,u,d,n,m,w,g,h;char c1;i=0;j=1;k=1;w=1;g=1;h=1;f=1;u=1;d=1;printf(" please input n number:n"); scanf(&

11、quot;%d",&n); for(i=0;i<=n;i+) for(g=1;g<=n;g+) f=f*g;for(h=1;h<=i;h+)u=u*h;for(w=1;w<=(n-i);w+) d=d*w; m=f/u/d; printf("%d",m); f=1;u=1;d=1;for(j=1;j<=i;j+) printf("t"); for(k=1;k<=(n-i);k+)printf("(1-t)"); printf("Q(%d)",i); if(i=n)break;else printf("+"); 七、運(yùn)行結(jié)果八,MATLAB曲面生成程序:th,r=meshgrid(0:5:360)*pi/180,0:.05:1); %在極坐標(biāo)系下設(shè)置一個73×21的網(wǎng)格矩陣,X,Y=pol2cart(th,r); %

溫馨提示

  • 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

提交評論