圖形學(xué)實(shí)驗(yàn)報(bào)告五 常用曲面與曲線的生成算法_第1頁
圖形學(xué)實(shí)驗(yàn)報(bào)告五 常用曲面與曲線的生成算法_第2頁
圖形學(xué)實(shí)驗(yàn)報(bào)告五 常用曲面與曲線的生成算法_第3頁
圖形學(xué)實(shí)驗(yàn)報(bào)告五 常用曲面與曲線的生成算法_第4頁
圖形學(xué)實(shí)驗(yàn)報(bào)告五 常用曲面與曲線的生成算法_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、貴州大學(xué)實(shí)驗(yàn)報(bào)告學(xué)院:計(jì)算機(jī)科學(xué)與信息學(xué)院 專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 班級: 101姓名學(xué)號實(shí)驗(yàn)組5實(shí)驗(yàn)時(shí)間2013.5.2指導(dǎo)教師吳云成績實(shí)驗(yàn)項(xiàng)目名稱常用曲面與曲線的生成算法實(shí)驗(yàn)?zāi)康?、通過實(shí)驗(yàn),進(jìn)一步理解和掌握生成Hermit、Bezier和B樣條曲線及Bezier曲面的生成算法2、掌握Hermit、Bezier、B樣條曲線及Bezier曲面的基本生成過程3、通過編程,會在一種語言環(huán)境下編程實(shí)現(xiàn)三次Hermit、Bezier、B樣條曲線及Bezier曲面的繪制實(shí)驗(yàn)要求 1、編程實(shí)現(xiàn)Hermit曲線的繪制。2、編程實(shí)現(xiàn)B樣條曲線的繪制。3、編程實(shí)現(xiàn)Bezier曲線的繪制。 4、編程實(shí)現(xiàn)Bezi

2、er曲面的繪制。實(shí)驗(yàn)原理1. 3次Hermite樣條曲線 (1). 將參數(shù)樣條曲線中的參數(shù)區(qū)間進(jìn)行 等距參數(shù)化,即令Li長度歸一化為1。就得到Hermite曲線。(2). 用其端點(diǎn)位矢Pi(0)、Pi(1)和切矢Pi(0)和Pi(1)描述。 記為:G=AM 求解得:A=G MH 令:可將其簡記為: 上式是三次Hermite(Ferguson)曲線的幾何形式。 幾何系數(shù)是P0、P1、P0、P1。 F0,F(xiàn)1, G0,G1稱為基函數(shù)/調(diào)和函數(shù)。 (3). 每一段Hermite曲線就是控制點(diǎn)P0、P1、P0、P1的加權(quán)和,權(quán)值由基函數(shù)F0,F(xiàn)1, G0,G1確定。通過增加頂點(diǎn)并指定相應(yīng)的切矢,就可得

3、到分段Hermite樣條曲線。2、Bezier曲線(1)基本構(gòu)型原理是:a.兩點(diǎn)P0、P1確定一條直線,表示為一次參數(shù)方程:p=p0+(p1-p0)tb.三點(diǎn)確定一條二次曲線:p=(1-t)2p0+2t(1-t)p1+t2p2, c.三個(gè)點(diǎn)p0,p1,p2稱作頂點(diǎn),中間頂點(diǎn)p1不但控制曲線的首末端切矢(方向和大?。?,而且唯一確定曲線的形狀。d.以此類推,n+1個(gè)頂點(diǎn)唯一確定一條n次曲線。頂點(diǎn)P0,P1,Pn的第一條邊P0P1決定曲線的一階導(dǎo)矢,第1,2條邊決定曲線的二階導(dǎo)矢,第1,2,3條邊決定曲線的三階導(dǎo)矢.(2).曲線方程中,各頂點(diǎn)的系數(shù)與二項(xiàng)式(1-t)n的展開式相似,在函數(shù)逼近論中,稱

4、這種系數(shù)函數(shù)為Bernstein基函數(shù)。(3). 給定空間n+1個(gè)點(diǎn)的位置矢量Pi(i=0,1,2,n)則Bézier曲線可定義為: 其中,Pi構(gòu)成該Bézier曲線的特征多邊形,Bi,n(t)是n次Bernstein基函數(shù): (4). 3次Bézier曲線 3.B樣條曲線(1). 在Bézier曲線方程中,用B樣條基函數(shù)代替Bernstein基函數(shù),就得到B樣條曲線。(2). B樣條曲線的突出優(yōu)點(diǎn)是對曲線的局部修改功能,因?yàn)锽樣條曲線是分段組成的(很容易產(chǎn)生C2連續(xù)性),所以控制多邊形的頂點(diǎn)對曲線的控制靈活而直觀。(3). B樣條曲線的次數(shù)可根據(jù)需要指

5、定,不像Bezier曲線的次數(shù)是由控制點(diǎn)的個(gè)數(shù)來確定。(4). B樣條曲線的方程定義為:給定空間n+1個(gè)點(diǎn)Pi(i=0,1,2,n),及參數(shù)節(jié)點(diǎn)向量:T=ti(titi+1 ,i=0,1,2,m),由下式定義的曲線P(t) 稱為k階 (k-1次)B樣條曲線: 階數(shù)k,控制頂點(diǎn)數(shù)n+1,節(jié)點(diǎn)個(gè)數(shù)m+1,具有以下關(guān)系:m=n+k記T為:Tn,k=ti(titi+1 ,i=0,1,2,n,n+k)(4)Bezier曲面 (1). 給定空間16個(gè)位置點(diǎn)rij,可以確定一張三次Bézier曲面片:(2). 首先生成四條v向的三次Bézier曲線:(3). 根據(jù)“線動(dòng)成面”的思想,取v

6、*0,1,在四條v線上取點(diǎn)為控制點(diǎn),沿u向生成三次Bézier曲線:(4). 將u,v向曲線方程合并得 (5). 3次Bézier曲面的矩陣表達(dá)式: 實(shí)驗(yàn)環(huán)境 Microsoft Visual Studio 6.0 實(shí)驗(yàn)步驟一繪制Hermit曲線:1 創(chuàng)建一個(gè)MFC工程,取名為zjie_ex05: 2、在CZjie_ex05View.h文件中聲明成員函數(shù)和變量: 3在CZjie_ex05View.cpp文件中,頭文件加入# define ROUND(a) int(a+0.5),#include "math.h"數(shù)學(xué)頭文件,寫入控制多邊形的初始化和繪制函數(shù)

7、的代碼并對寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計(jì)Menu在資源視圖Resource View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計(jì)如下:并在CZjie_ex05View.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運(yùn)行調(diào)試二、繪制B樣條曲線:1 創(chuàng)建一個(gè)MFC工程,取名為zjie_B: 2、在zjie_BView.h文件中聲明成員函數(shù)和變量: 3在在zjie_BView.h文件中,頭文件加入# define ROUND(a) int(a+0.5),寫入控制多邊形的初始化和繪制函數(shù)的代碼并對寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計(jì)Menu在資源視圖Resou

8、rce View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計(jì)如下:并在在zjie_BView.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運(yùn)行調(diào)試三繪制Bezier曲線:1. 創(chuàng)建一個(gè)MFC工程,取名為zjie_bezier:2、在zjie_bezierView.h文件中聲明成員函數(shù)和變量:3.在zjie_bezierView.h文件中,頭文件加入以下頭文件:寫入控制多邊形的初始化和繪制函數(shù)的代碼并對寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計(jì)Menu在資源視圖Resource View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計(jì)如下:并在在zjie_bezierVie

9、w.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運(yùn)行調(diào)試四Bezier曲面的繪制:1. 創(chuàng)建一個(gè)MFC工程,取名為zjie_Bezier_qm:2建立兩個(gè)新類,分別為P3D,P2D用于設(shè)置三維坐標(biāo)點(diǎn)和二維坐標(biāo)點(diǎn): 3.在zjie_Bezier_qmView.h文件中,頭文件加入以下頭文件:寫入成員函數(shù)和變量的聲明的函數(shù)體,具體代碼在此省略 。 4.在zjie_Bezier_qmView.cpp文件中,頭文件加入以下頭文件:寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計(jì)Menu在資源視圖Resource View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計(jì)如下:并在在zjie_Bezier_qmView.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運(yùn)行調(diào)試實(shí)驗(yàn)內(nèi)容編寫繪制Hermit、Bezier、B樣條曲線的程序。實(shí)驗(yàn)結(jié)果一 Hermit曲線:可執(zhí)行程序運(yùn)行初界面:點(diǎn)擊繪圖的里繪制Hermit曲線:二 繪制三次B樣條曲線:1.可執(zhí)行程序運(yùn)行初界面:2.點(diǎn)擊繪制三次B樣條曲線:3.直接拖動(dòng)多邊形頂點(diǎn):三 繪制Bezier曲線:1.點(diǎn)擊繪制Bezier曲線:2.點(diǎn)擊鼠標(biāo)左鍵,設(shè)置控制多邊形頂點(diǎn),并點(diǎn)擊右鍵得到曲線:一次Bezier曲線:、二次Bezier曲線:三次Bezier曲線:四次Bezier曲

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論