




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機圖形學實驗報告實驗名稱Bezier曲線和樣條曲線的生成算法 評分實驗日期 年一月一日指導教師姓名 專業班級 學號一、實驗目的1、復習Bezier曲線和B樣條曲線的參數表示法。2、編程實現用二次Bezier曲線繪制。3、編程實現用三次Bezier曲線繪制和分段光滑Bezier曲線圖形的繪制。4、用三次B樣條函數繪制曲線。二、實驗要求1、編程實現在屏幕上繪制出兩次Bezie曲線的幾何圖形和特征多邊形圖形,對于直線和曲線設置不同的線形和顏色。2、現在屏幕上繪制出三次Bezie曲線的幾何圖形和特征多邊形圖形,對于直線和曲線設置不同的線形和顏色。1、編程實現用分段三次Bezier曲線繪制光滑Bez
2、ier曲線圖形。1、編程實現在屏幕上繪制出三次B樣條函數繪制曲線。2、編程實現在屏幕上繪制出光滑連接的三次B樣條曲線。三、關鍵算法及實現原理1、二次Bezier曲線的計算公式為:P(t)=(Po-2Pl + P2)t2+(-2Po+2Pl)t+Po2X(t)=(X 0-2X1+X 2) t2+(-2X o +2X i)t+X oY(t)=(Y 0-2Y1+Y 2) t2+(-2Y o +2Y i)t+Yo其中P。、Pi、P2為三個已知的點,坐標分別為(X。、丫。)、(Xi、丫 1)、(X1、Y2)。2、次Bezier曲線的計算公式為:P(t)=(-Po+3Pi-3P2+P3)t3+(3Po-6
3、Pi+3P2)t2+(-3Po+3Pi)t+PoX(t)= (-X o+3X 1-3X2+X3)t3+(3X o-6Xi+3X2)t2+(-3X o+3XJt+XoY(t)= (-Y o+3Yi-3Y2+Y3)t3+(3Yo-6Yi+3Y2)t2+(-3Y o+3Y i)t+Y o其中 P。、Pl、P2、P3 為四個已知的點,坐標分別為(Xo、Yo)、(Xi、Yl) > (Xi、丫2)、(X3、Y3)。3、三次B樣條函數繪制曲線的計算公式為:P(t)=(-Po+3Pi-3P2+3P3)t3+(3Po-6Pi+3P2)t2+(-3Po+3P2)t+(Po+4Pi+P2)/6X(t)=(-X
4、 o+3X 1-3X 2+3X 3)t3+(3X 0-6X 1+3X 2)t 2+(-3X o+3X 2)t+(X o+4X 1+X 2)/6Y(t)=(-Y o+3Y 1-3Y 2+3Y 3)t3+(3Y 0-6Y 1+3Y 2)t 2+(-3Y o+3Y 2)t+(Y o+4Y 1+Y 2)/6其中 P。、Pl、P2、P3 為四個已知的點,坐標分別為(Xo、Yo)、(Xi、Yl) > (Xi、丫2)、(X3、Y3)。4、三次B樣條函數繪制曲線的光滑連接條件為:對于 N個頂點,取Pi、P2、P3、P4 4個頂 點繪制在第一段三次樣條曲線,再取P2、P3、P4、P5 4個頂點繪制在第二段
5、三次樣條曲線,總計 可繪制n-3段光滑連接的三次樣條曲線。5、程序設計方法根據Bezier曲線的定義,輸入Bezier曲線的特征多邊形(例如三次Bezier曲線輸入四個型值 點),然后把t從。1分成n等分,按相應的Bezier曲線公式計算出Bezier曲線上的點,用繪直 線段的方法依次這些點連接起來,就得到Bezier曲線。如果要畫多段Bezier曲線,可設置一些變 量存放Bezier曲線的條數,按條數依次繪制出來即可。四、程序調試中的問題1、注意選項中路徑要改。2、在turboc2中加載displaytou頭文件五、程序運行結果或數據1、繪制二次Bezier曲線的源程序#include &q
6、uot;display.h"void Bezier_2(int color,double p32) double t,xt,yt;int rate=200,x,y;setcolor(color);moveto(p00,p01);for (t=O;t<=1 ;t+=1.0/rate)xt=p00*yt*yt+p10*2*yt*t+p20*t*t;yt=p01 *yt*yt+p1 1*2*yt*t+p21x=(int)(xt);y=(int)(yt);lineto(x,y);|void main(void) static double p32=50,400,340,20,635,4
7、20;const N0=3;int i;lnitialize();setcolor(WHITE);moveto(p00,p01);for (i=1;i<N0;i+) lineto(pi0,pi1);Bezier_2(LIGHTRED,p);while (getch()!=ESC);closegraph();2、實現光滑連接的三次B一樣條曲線源程序#include"graphics.h"#include"conio.h"#include<dos.h>void B_yt_3(int 2,int color,int tzb);void tul
8、ie(int,int,int);void xuehaopri(int color);void main()int gdriver=DETECT,gmode;int p82=30,350,90,110,250,260,390,90,490,110,530,370,600,230,550,110;initgraph(&gdriver,&gmode,"D:tcbgi");xuehaopri(14);tulie(2,4,15);B_yt_3(p,4,0);getch();closegraph();void B_yt_3(int p2,int color,int tz
9、b)(float t=0;int xt,yt,i,m;setlinestyle(0,0,1);setcolor(15);delay(IOOO);if(tzb=1)for(i=0;i<7;i+) line(pi0,pi1,pi+10,pi+11);setcolor(color);for(m=0;m<5;m+)for(t=0;t<=1.0;t+=0.01)(xt=1.0/6*(-pm0+3*pm+1 0-3*pm+20+pm+30)*t*t*t+ (3*pm0-6*pm+1 0+3*pm+20)*t*t+ (-3*pm0+3*pm+20)*t+(pm0+4*pm+10+pm+20
10、);yt=1.0/6*(-pm1 +3*pm+11 -3*pm+21 +pm+31 )*t*t*t+ (3*pm1 -6*pm+11 +3*pm+21 )*t*t+(-3*pm1 +3*pm+21 )*t+(pm1 +4*pm+1 1 +pm+21);if(t=O) moveto(xt,yt);lineto(xt,yt);delay(15);void xuehaopri(int color) setcolor(color);settextstyle(1,0,3);settextjustify(1,1);outtextxy(getmaxx()/2,15,"Made By No. 010
11、XXX");void tulie(int coIori Jnt color2,int textcolor) (int x=getmaxx()/2,y=getmaxy()-20; moveto(x-1803y);setcolor(colorl);setlinestyle(0,0,3);lineto(x-155,y);setcolor(color2);moveto(x5y);lineto(x+25,y);setcolor(textcolor);settextstyle(0,0,1);outtextxy(x-803y,fl2 ci B_yangtiaoM);c、 E:turboc2TC.E
12、XEFile Edit Run Compile Project Options Debug Break/watcF)Line 1E:3BEZIER.C 一 ' Edit 一七一一wCol 1 Insert Indent Tab Fill UnindentMinelude“graphicsh” ttinclude Mcon io.h0 ttinclude<dos.h>vo id vo id uoid uoid <int intD_yt_3< int 2 J int coloi* int tab> > tulie<int> intfr xue
13、haopri< inti nainO gdriue r =DET EC; pL8H2««30.CompilingMain file: SEC0ND3BEZIER.CCompiling: EDITOR 3BEZ1ER.C<530.370)X600.230 initgraphC&gdriue xuehaopri<14>tulie<2,4,15; B_yt_3<p,4,U>; getchO ; closegraphO ;Lines compiled:Warnings: Errors:11 09T 7 0 0Available nemoxv: 262KSuccessi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年山東省青島市即墨區中考一模語文試卷
- 高中生性教育課件(女生篇)
- 一年級美術知識點教學計劃
- 春季皮膚護理的重要性
- 文化藝術項目可行性分析報告范文
- 2025年藝術課程新課標
- 成都市XXX小學人工智能實驗室建設計劃
- 新概念英語第一冊課程全攻略
- 道德與法治課堂建設工作計劃
- 會計準則案例課件
- 英語練習漢譯英100句
- 六年級下冊經典誦讀DOC
- 來料檢驗指導書鋁型材
- 基于單片機的無線射頻收發系統
- 工程項目監理常用臺賬記錄表格(最新整理)
- Purchase Order模板參考模板
- 質量保證體系調查表
- -腦梗死臨床路徑2016
- OVATION培訓教材資料
- 財綜[2001]94號
- 發電機組防腐保溫施工方案
評論
0/150
提交評論