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

下載本文檔

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

文檔簡介

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

2、er曲面的繪制。實驗原理1. 3次Hermite樣條曲線 (1). 將參數(shù)樣條曲線中的參數(shù)區(qū)間進行 等距參數(shù)化,即令Li長度歸一化為1。就得到Hermite曲線。(2). 用其端點位矢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曲線就是控制點P0、P1、P0、P1的加權(quán)和,權(quán)值由基函數(shù)F0,F(xiàn)1, G0,G1確定。通過增加頂點并指定相應(yīng)的切矢,就可得

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

4、這種系數(shù)函數(shù)為Bernstein基函數(shù)。(3). 給定空間n+1個點的位置矢量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)點是對曲線的局部修改功能,因為B樣條曲線是分段組成的(很容易產(chǎn)生C2連續(xù)性),所以控制多邊形的頂點對曲線的控制靈活而直觀。(3). B樣條曲線的次數(shù)可根據(jù)需要指

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

6、*0,1,在四條v線上取點為控制點,沿u向生成三次Bézier曲線:(4). 將u,v向曲線方程合并得 (5). 3次Bézier曲面的矩陣表達式: 實驗環(huán)境 Microsoft Visual Studio 6.0 實驗步驟一繪制Hermit曲線:1 創(chuàng)建一個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è)計Menu在資源視圖Resource View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計如下:并在CZjie_ex05View.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運行調(diào)試二、繪制B樣條曲線:1 創(chuàng)建一個MFC工程,取名為zjie_B: 2、在zjie_BView.h文件中聲明成員函數(shù)和變量: 3在在zjie_BView.h文件中,頭文件加入# define ROUND(a) int(a+0.5),寫入控制多邊形的初始化和繪制函數(shù)的代碼并對寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計Menu在資源視圖Resou

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

9、w.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運行調(diào)試四Bezier曲面的繪制:1. 創(chuàng)建一個MFC工程,取名為zjie_Bezier_qm:2建立兩個新類,分別為P3D,P2D用于設(shè)置三維坐標(biāo)點和二維坐標(biāo)點: 3.在zjie_Bezier_qmView.h文件中,頭文件加入以下頭文件:寫入成員函數(shù)和變量的聲明的函數(shù)體,具體代碼在此省略 。 4.在zjie_Bezier_qmView.cpp文件中,頭文件加入以下頭文件:寫入成員函數(shù)的函數(shù)體,具體代碼在此省略 。 4設(shè)計Menu在資源視圖Resource View上雙擊Menu,打開IDR_MAINFRAME,設(shè)計如下:并在在zjie_Bezier_qmView.cpp中參加菜單函數(shù),具體函數(shù)代碼在此省略。5運行調(diào)試實驗內(nèi)容編寫繪制Hermit、Bezier、B樣條曲線的程序。實驗結(jié)果一 Hermit曲線:可執(zhí)行程序運行初界面:點擊繪圖的里繪制Hermit曲線:二 繪制三次B樣條曲線:1.可執(zhí)行程序運行初界面:2.點擊繪制三次B樣條曲線:3.直接拖動多邊形頂點:三 繪制Bezier曲線:1.點擊繪制Bezier曲線:2.點擊鼠標(biāo)左鍵,設(shè)置控制多邊形頂點,并點擊右鍵得到曲線:一次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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論