計算機圖形學(xué)編程生成三次貝塞爾曲線_第1頁
計算機圖形學(xué)編程生成三次貝塞爾曲線_第2頁
計算機圖形學(xué)編程生成三次貝塞爾曲線_第3頁
計算機圖形學(xué)編程生成三次貝塞爾曲線_第4頁
計算機圖形學(xué)編程生成三次貝塞爾曲線_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z.集 美 大 學(xué)計 算 機 工 程 學(xué) 院實 驗 報 告課程名稱計算機圖形學(xué)教程實驗名稱實驗五、編程生成三次貝塞爾曲線實驗類型設(shè)計型*日期12月12日地點成績教師評語:實驗?zāi)康模阂环矫妫寣W(xué)生對自由曲線的生成算法有更深入的理解,特別是對于曲線的逼近,能夠通過實驗編程來驗證書上所提供的算法思想:另一方面,在圖形程序設(shè)計方法如設(shè)計各種各樣的圖形、繪圖函數(shù)的使用以及C和C+語言編程環(huán)境、程序的調(diào)試和測試方面受到比擬系統(tǒng)和嚴(yán)格的訓(xùn)練。實驗容:運用所學(xué)的三次貝塞爾曲線生成的算法,根據(jù)以下數(shù)據(jù)點*, y:50, 100 80, 230 100, 270 140, 160 180, 50 240,

2、65 270, 120 330, 230 380, 230 430, 150計算出結(jié)果,并實現(xiàn)三段貝塞爾在屏幕上顯示的功能實驗要求:13段三次貝塞爾曲線在銜接點上要連續(xù),曲線整體效果要光滑。2整個圖形輪廓要清晰,色彩要清楚四、實驗環(huán)境: 1PC,CPU:P4 2.0GHz以上,存:512M,硬盤:40GB以上; 2操作系統(tǒng):Microsoft Windows 2000 /2003/*P; 3軟件:VC或JAVA等。五、實驗容及完成情況:#include graphics.h#include conio.h#include stdio.htypedef structdouble *,y;DPOI

3、NT; /定義構(gòu)造體class Bezier /定義Bezier類private:DPOINT* bP;int m_ma*Inde*;void drawFrame();void drawCurve();void drawCurve(int p0,int p1,int p2,int p3);public:Bezier(DPOINT* p,int len); /定義構(gòu)造函數(shù)void draw();Bezier:Bezier(DPOINT* p,int len) /構(gòu)造函數(shù)的實現(xiàn)this -bP=p;m_ma*Inde*=len-1;void Bezier:draw() /通過公有函數(shù)調(diào)用私有函數(shù)d

4、rawFrame();drawCurve();void Bezier:drawFrame() /其功能是繪制出多邊形和各個端點setcolor(12);for(int i=0;im_ma*Inde*;i+)line( bPi.*, bPi.y, bPi+1.*, bPi+1.y ); /繪制多邊形circle(bPi.*, bPi.y,5); /繪制各個端點circle(bPm_ma*Inde*.*,bPm_ma*Inde*.y,5);void Bezier:drawCurve() /實現(xiàn)多段Bezier曲線繪制的功能for(int i=0;i=m_ma*Inde*-3;i+=3)drawCu

5、rve(i,i+1,i+2,i+3);void Bezier:drawCurve(int p0,int p1,int p2,int p3) /實現(xiàn)繪制*一段Bezier曲線的功能double tmp*=0.0;double tmpy=0.0;double t=0.0;for(;t=1.0;t+=0.001)tmp*=(-bPp0.*+3*bPp1.*-3*bPp2.*+bPp3.*)*t*t*t+(3*bPp0.*-6*bPp1.*+3*bPp2.*)*t*t+(-3*bPp0.*+3*bPp1.*)*t+bPp0.*;tmpy=(-bPp0.y+3*bPp1.y-3*bPp2.y+bPp3.

6、y)*t*t*t+(3*bPp0.y-6*bPp1.y+3*bPp2.y)*t*t+(-3*bPp0.y+3*bPp1.y)*t+bPp0.y;putpi*el(tmp*,tmpy,3);void main() /主函數(shù)的實現(xiàn)int graphdriver=DETECT,graphmode;initgraph(&graphdriver,&graphmode,E:tc3bgi);setbkcolor(0);outte*t*y(10,20,nnnnnn jisuan1013 2010810070 chengaowei);DPOINT* p;p=new DPOINT10; p0.*=50.0;p0.y=100.0;p1.*=80.0;p1.y=230.0;p2.*=100.0;p2.y=270.0;p3.*=140.0;p3.y=160.0;p4.*=180.0;p4.y=50.0;p5.*=240.0;p5.y=65.0;p6.*=270.0;p6.y=120.0;p7.*=330.0;p7.y=230.0;p8.*=380.0;p8.y=230.0;p9.*=430.0;p9.y=150.0;Bezier bzr(p,10);bzr.draw();delete p;getch();closegraph();運行結(jié)果:六、實驗總結(jié):通過這次實驗,讓我對自由曲線

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論