




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、貴州大學(xué)實驗報告學(xué)院:計算機(jī)科學(xué)與信息 專業(yè):計科 班級:101姓名呂楊學(xué)號1008060040同組成員實驗時間2013-4-7指導(dǎo)教師吳云成績實驗項目名稱圓的生成算法實驗?zāi)康?、通過實驗,進(jìn)一步理解和掌握中點(diǎn)算法、Bresenham算法和二階差分算法;2、掌握以上算法生成圓的基本過程;3、通過編程,學(xué)習(xí) VC及Matlab環(huán)境下完成用中點(diǎn)算法、Bresenham算法和二階差分算法實現(xiàn)圓的繪制。實驗內(nèi)容1、用中點(diǎn)算法、Bresenham算法和二階差分算法實現(xiàn)圓的繪制。2、寫出實驗報告實驗環(huán)境WIN XP、VC+ 6.0及Matlab語言程序設(shè)計環(huán)境實驗環(huán)境操作系統(tǒng):Windows XP SP3
2、編程環(huán)境:Microsoft Visual C+ 6.0計算機(jī)配置:P4 3.0,1G DDR2 160G硬盤 X1300PRO圖形卡實驗主要代碼及運(yùn)行結(jié)果步驟l 圓的生成算法一 Bresenham 算法1. 原理:利用圓的對稱性,只須畫出1/8圓, 就可畫出整個圓。P為當(dāng)前點(diǎn)亮象素,那么,下一個點(diǎn)亮的象素可能是P1(Xp+1,Yp)或P2(Xp +1,Yp +1)。d的初值:d0= F(1, R-0.5)=1.25 R。若d=0, 則P2 為下一個象素,那么再下一個象素的判別式為:d1 = F(xp + 2, yp - 1.5)= d + (2xp + 3)+(-2 yp + 2)即d 的增
3、量為 2 (xp - yp) +5.2.運(yùn)行時主要代碼:void CTestView:Mbline()/Bresenham函數(shù)CClientDC dc(this);COLORREF rgb=RGB(0,0,255);/定義直線顏色為藍(lán)色double x,y,d,k;x=x0;y=y0;k=(y1-y0)/(x1-x0);d=0.5-k; for(x=x0;x=x1;x+) dc.SetPixel(ROUND(x),ROUND(y),rgb); if(d0)y+; d+=1-k;else d-=k; 2. 結(jié)果: 二中點(diǎn)畫圓算法1.原理:構(gòu)造函數(shù):F(X,Y)=X2 + Y2 - R2,則 F(
4、X,Y)= 0:(X,Y)在圓周上; F(X,Y) 0:(X,Y)在圓外。 假設(shè)P是當(dāng)前已確定的光柵點(diǎn)。構(gòu)造判別式:dM= F(M)= F(xp+1,yp-0.5)=(xp+1)2+( yp-05)2-R2(1)如果dM0,表示下一中點(diǎn)M在圓外,選擇B點(diǎn),且: dMB= F(xMB,yMB)= F(xp+2,yp-1.5)=(xp+2)2+( yp-1.5)2-R2 dMB= dMB - dM=2xp-2yp +5 (3)dM0=1.25-R ; 如果dM0,選擇B點(diǎn),且: dM = dM + 2xp-2yp +5 3. 主要代碼:/假設(shè)圓的中心在原點(diǎn) void MidPointCircle
5、(int radius,int value)int x=0; int y= radius; int d=1 - radius;CirclePoints(x, y, value); While (yx) if (dx) if (dSetWindowText(Bressenham算法); RedrawWindow();GetMaxX();GetMaxY();Mbcircle();void CCircleView:OnMENUMid() / TODO: Add your command handler code hereCircleDlg dlg;if(dlg.DoModal()=IDOK) R=d
6、lg.m_R; AfxGetMainWnd()-SetWindowText(中點(diǎn)算法); RedrawWindow();GetMaxX();GetMaxY();MidPoint();void CCircleView:OnMENUEr() / TODO: Add your command handler code here CircleDlg dlg;if(dlg.DoModal()=IDOK) R=dlg.m_R; AfxGetMainWnd()-SetWindowText(二階差分算法); RedrawWindow();GetMaxX();GetMaxY();Erjie();3.運(yùn)行結(jié)果:l
7、 橢圓的生成算法void CMyView:Mbellipse()/橢圓的Bresenham算法double x,y,d1,d2;x=0;y=b;d1=b*b+a*a*(-b+0.25);EllipsePoint(x,y);while(b*b*(x+1)a*a*(y-0.5)/橢圓AC弧段if (d10)if (d20)d2+=b*b*(2*x+2)+a*a*(-2*y+3);x+;elsed2+=a*a*(-2*y+3);y-;EllipsePoint(x,y);void CMyView:EllipsePoint(double x, double y)/四分法畫橢圓 CClientDC dc(this);COLORREF rgb=RGB(0,0,255);/定義橢圓的顏色dc.SetPixel(ROUND(x)+MaxX/2,ROUND(y)+MaxY/2,rgb);dc.SetPixel(ROUND(-x)+MaxX/2,ROUND(y)+MaxY/2,rgb);dc.SetPixel(ROUND(x)+MaxX/2,ROUND(-y)+MaxY/2,rgb);dc.SetPixel(ROUND(-x)+MaxX/2,ROUND(-y)+MaxY/2,rgb); 運(yùn)行結(jié)果如下:實驗總結(jié) 通過這次實驗,利用vc+6
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 退役重武器測試題及答案
- 2023-2024學(xué)年山西省太原市迎澤區(qū)三年級(上)期末數(shù)學(xué)試卷(含答案)
- 小黑子考試試題及答案
- 2025年消防設(shè)施操作員之消防設(shè)備高級技能押題練習(xí)試題A卷含答案
- 2019-2025年消防設(shè)施操作員之消防設(shè)備中級技能能力檢測試卷B卷附答案
- 2023年全國翻譯專業(yè)資格(水平)考試英語三級筆譯實務(wù)試題真題及答案
- 配電柜知識培訓(xùn)課件
- 卸妝膏護(hù)膚知識培訓(xùn)課件
- 小紅船讀后感
- 市場營銷策略制定服務(wù)協(xié)議
- 電氣安全安全管理程序
- 銷盤摩擦磨損試驗機(jī)設(shè)計
- 長江流域氣候變化影響脆弱性和適應(yīng)性
- 《中國古代文學(xué)史——第四編:隋唐五代文學(xué)》PPT課件(完整版)
- 人教版數(shù)學(xué)八年級下冊全冊說課稿(PPT版)(共21張PPT)課件
- 政府采購法專題課件(PPT 33頁)
- 材料大課堂鈦合金(課堂PPT)
- NRC蛋雞飼養(yǎng)標(biāo)準(zhǔn)
- 項目總工崗位職責(zé)
- 最新-路面標(biāo)線技術(shù)交底
- 醫(yī)院卒中質(zhì)量控制考核方案
評論
0/150
提交評論