




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上計(jì)算機(jī)科學(xué)與通信工程學(xué)院實(shí)驗(yàn)報(bào)告課程計(jì)算機(jī)圖形學(xué)實(shí)驗(yàn)題目實(shí)驗(yàn)二:曲線擬合學(xué)生姓名學(xué)號(hào)專(zhuān)業(yè)班級(jí)指導(dǎo)教師日期成績(jī)?cè)u(píng)定表評(píng)價(jià)內(nèi)容具體內(nèi)容權(quán)重得分論證分析方案論證與綜合分析的正確、合理性20%算法設(shè)計(jì)算法描述的正確性與可讀性20%編碼實(shí)現(xiàn)源代碼正確性與可讀性30%程序書(shū)寫(xiě)規(guī)范標(biāo)識(shí)符定義規(guī)范,程序書(shū)寫(xiě)風(fēng)格規(guī)范20%報(bào)告質(zhì)量報(bào)告清晰,提交準(zhǔn)時(shí)10%總 分指導(dǎo)教師簽名1. 實(shí)驗(yàn)內(nèi)容1. 繪制三次Bezier曲線(1)給定四個(gè)已知點(diǎn)P1P4,以此作為控制頂點(diǎn)繪制一段三次Bezier曲線。(2)給定四個(gè)已知點(diǎn)P1P4,以此作為曲線上的點(diǎn)繪制一段三次Bezier曲線。2. 繪制三次B樣條
2、曲線給定六個(gè)已知點(diǎn)P1P6,以此作為控制頂點(diǎn)繪制一條三次B樣條曲線。2. 實(shí)驗(yàn)環(huán)境Windows xpVs 20083. 問(wèn)題分析Bezier曲線通過(guò)一組多邊折線的各頂點(diǎn)唯一的定義出來(lái)。 在多邊折線的各頂點(diǎn)中,只有第一點(diǎn)和最后一點(diǎn)在曲線上,其余的頂點(diǎn)則用來(lái)定義曲線的導(dǎo)數(shù),階次和形狀。三次Bezieer曲線經(jīng)過(guò)首、末兩個(gè)控制點(diǎn),且與特征多邊形的首、末兩條邊相切。因此在給定四個(gè)控制點(diǎn)的情況下,可以根據(jù)線性貝塞爾曲線描述的中介點(diǎn) Q0、Q1、Q2,和由二次曲線描述的點(diǎn) R0、R1 所建構(gòu)。也可以在給定四個(gè)線上點(diǎn)的情況下根據(jù)公式計(jì)算出曲線??傊灰@得了四個(gè)控制點(diǎn)的坐標(biāo),便可以通過(guò)編程來(lái)繪制出曲線。
3、對(duì)于給出了四個(gè)曲線上點(diǎn)的曲線,由于控制點(diǎn)的坐標(biāo)位于曲線上,而且在相交處兩曲線的切平面重合,曲率相等??梢該?jù)此來(lái)繪制圖形。B樣條曲線是Bezier曲線的拓廣,它是用B樣條基函數(shù)代替了Bezier曲線表達(dá)式中的Bernstain基函數(shù)。在空間給定n1個(gè)點(diǎn)的位置向量Pi (i=0,1,2,n, n>=k),則稱(chēng)參數(shù)曲線 (0t1)為k階(或k1次)的B樣條曲線。其中Ni,k(t)為B樣條基函數(shù)。其中Ni,k(t)為B樣條基函數(shù)。給定的n1個(gè)點(diǎn)為B樣條曲線的控制頂點(diǎn),由其構(gòu)成的多邊折線稱(chēng)B特征多邊形。三次B樣條曲線的端點(diǎn)特性:圖 1 b給定4個(gè)點(diǎn)繪制的b樣條曲線三次B樣條曲線的連續(xù)性:在已有的三
4、次B樣條曲線的基礎(chǔ)上,增加一個(gè)控制點(diǎn),就可相應(yīng)地增加一段B樣條曲線,并自然地達(dá)到 C2連續(xù)。圖 2給定五個(gè)點(diǎn)所繪制的b樣條曲線4. 算法設(shè)計(jì)下圖3為給定四個(gè)已知點(diǎn),以此作為控制頂點(diǎn)繪制一段三次Bezier曲線的流程圖。圖4為給定四個(gè)曲線上點(diǎn),繪制三次Bezier曲線的流程圖。圖5為給定六個(gè)控制點(diǎn)所繪制三次b樣條曲線的流程圖。圖 3圖 4 圖 55. 源代碼/以已知的四個(gè)點(diǎn)為控制點(diǎn)繪制Bezier曲線void CDiamondView:DrawBezier1(POINT p4)CDC *pDC = GetDC(); InvalidateRect(NULL); UpdateWindow(); CP
5、en newPen,*oldPen; newPen.CreatePen(PS_SOLID,2,RGB(0,0,0); oldPen = pDC->SelectObject(&newPen);pDC->Polyline(p,4); pDC->SelectObject(oldPen);newPen.DeleteObject(); newPen.CreatePen(PS_SOLID, 1, RGB(255,0,0); oldPen = pDC->SelectObject(&newPen);double ax,bx,cx,dx,ay,by,cy,dy,x,y,t
6、;ax=(-p0.x)+(3*p1.x)-(3*p2.x)+(p3.x); bx=(3*p0.x)-(6*p1.x)+(3*p2.x); cx=(-3*p0.x)+(3*p1.x); dx=p0.x; ay=(-p0.y)+(3*p1.y)-(3*p2.y)+(p3.y); by=(3*p0.y)-(6*p1.y)+(3*p2.y); cy=(-3*p0.y)+(3*p1.y); dy=p0.y; pDC->MoveTo(p0.x,p0.y); for(t=0;t<=1;t+=0.01) x=ax*t*t*t+bx*t*t+cx*t+dx; y=ay*t*t*t+by*t*t+cy
7、*t+dy; pDC->LineTo(x,y); Sleep(1); pDC->SelectObject(oldPen);/以已知的四個(gè)點(diǎn)為Bezier曲線上的點(diǎn)來(lái)繪制Bezier曲線void CDiamondView:DrawBezier2(POINT p4)POINT a3,b3;POINT a11,b11;for(int i=0;i<=2;i+)if(i=0)a10=pi;b10=pi+2;else if(i=2)a10=pi-1;b10=pi+1;elsea10=pi-1;b10=pi+2;bi.y=pi+1.y+(pi.y)-(b10.y)/4;bi.x=pi+1.
8、x+(pi.x)-(b10.x)/4;ai.y=pi.y+(pi+1.y)-(a10.y)/4;ai.x=pi.x+(pi+1.x)-(a10.x)/4;CDC *pDC = GetDC();CPen newPen,*oldPen; newPen.CreatePen(PS_SOLID,2,RGB(0,255,0); oldPen = pDC->SelectObject(&newPen);for(int i=0;i<=2;i+)POINT p14=pi.x,pi.y,ai.x,ai.y,bi.x,bi.y,pi+1.x,pi+1.y; pDC->PolyBezier(p
9、1,4); pDC->SelectObject(oldPen);/以已知的六個(gè)點(diǎn)為控制點(diǎn)來(lái)繪制B樣條曲線/p:已知的六個(gè)控制點(diǎn)void CDiamondView:DrawBCurve(POINT p6) InvalidateRgn(NULL); UpdateWindow(); CDC *pDC = GetDC(); CPen newPen,*oldPen; newPen.CreatePen(PS_SOLID,2,RGB(255,0,0); oldPen = pDC->SelectObject(&newPen); int rate=1000; int ax,ay,bx,by,
10、cx,cy,dx,dy; double x,y; pDC->Polyline(p, 6); pDC->SelectObject(oldPen); newPen.DeleteObject(); newPen.CreatePen(PS_SOLID,3,RGB(0,0,255); oldPen = pDC->SelectObject(&newPen); for(int i=0;i<3;i+) ax=-(pi.x-3*pi+1.x+3*pi+2.x-pi+3.x)/6; bx=(pi.x-2*pi+1.x+pi+2.x)/2; cx=-(pi.x-pi+2.x)/2;
11、dx=(pi.x+4*pi+1.x+pi+2.x)/6; ay=-(pi.y-3*pi+1.y+3*pi+2.y-pi+3.y)/6; by=(pi.y-2*pi+1.y+pi+2.y)/2; cy=-(pi.y-pi+2.y)/2; dy=(pi.y+4*pi+1.y+pi+2.y)/6; for(double t=0;t<=1;t+=1.0/rate) x=ax*pow(t,3)+bx*pow(t,2)+cx*t+dx; y=ay*pow(t,3)+by*pow(t,2)+cy*t+dy; pDC->MoveTo(Round(x),Round(y); pDC->LineTo(Round(x),Round(y); Sleep(2); pDC->SelectObject(oldPen);6. 程序運(yùn)行結(jié)果下圖6為給定四個(gè)已知點(diǎn),以此作為控制頂點(diǎn)繪制的一段三次Bezier曲線。圖8為給定四個(gè)曲線上點(diǎn)所繪制的三次B
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中式餐廳轉(zhuǎn)讓合同范本
- 產(chǎn)品配方轉(zhuǎn)讓合同范例
- 公司代經(jīng)營(yíng)合同范例
- 2024年重慶市大足區(qū)婦女聯(lián)合會(huì)招聘筆試真題
- 化肥品牌轉(zhuǎn)讓合同范本
- 書(shū)宣傳推廣合同范本
- 公寓鋪?zhàn)愚D(zhuǎn)讓合同范本
- 個(gè)人首套房屋購(gòu)買(mǎi)合同范本
- 化工購(gòu)銷(xiāo)合同范本
- 軌道交通云平臺(tái)業(yè)務(wù)關(guān)鍵技術(shù)發(fā)展趨勢(shì)
- 打造金融級(jí)智能中臺(tái)的數(shù)據(jù)底座
- 工程合同管理教材(共202頁(yè)).ppt
- ANKYLOS機(jī)械并發(fā)癥處理方法
- 道路橋梁實(shí)習(xí)日記12篇
- 第十章運(yùn)動(dòng)代償
- 氬弧焊機(jī)保養(yǎng)記錄表
- 明星97iii程序說(shuō)明書(shū)
- 《企業(yè)經(jīng)營(yíng)統(tǒng)計(jì)學(xué)》課程教學(xué)大綱
- 交通安全設(shè)施養(yǎng)護(hù)技術(shù).ppt
- 工程施工聯(lián)系單范本完整版
評(píng)論
0/150
提交評(píng)論