計(jì)算機(jī)圖形課程設(shè)計(jì)報(bào)告_第1頁
計(jì)算機(jī)圖形課程設(shè)計(jì)報(bào)告_第2頁
計(jì)算機(jī)圖形課程設(shè)計(jì)報(bào)告_第3頁
計(jì)算機(jī)圖形課程設(shè)計(jì)報(bào)告_第4頁
計(jì)算機(jī)圖形課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)圖形學(xué)課程設(shè)計(jì)項(xiàng)目題目:圓內(nèi)動(dòng)態(tài)顏色填充專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)學(xué) 號(hào): 112054141姓 名: 汪智指導(dǎo)教師:李麗亞2014年6月目錄一、 項(xiàng)目概述 二、項(xiàng)目需求 三、項(xiàng)目設(shè)計(jì) 四、項(xiàng)目效果 五、算法改進(jìn) 六、項(xiàng)目總結(jié)一、項(xiàng)目概述填充算法用于內(nèi)部定義區(qū)域,以改變整個(gè)區(qū)域的顏色屬性,它把區(qū)域內(nèi)的原像 素點(diǎn)值改變成另一種像素點(diǎn)值。算法中,讀出像素點(diǎn)(x; y)像素點(diǎn)值。此算法所采用的基本方法是首先確定 (x; y)點(diǎn)的像素點(diǎn)是否在區(qū)域內(nèi)尚未被 訪問過的那一部分之中,也就是說,如果這個(gè)像素點(diǎn)的值是原始值old-value ,則需要把它改為填充的值 new-value ,然后按區(qū)域性質(zhì)先后訪

2、問其相鄰的像素 點(diǎn),當(dāng)訪問其中每一個(gè)近鄰像素點(diǎn)時(shí),都要進(jìn)行遞歸調(diào)用。填充算法,其基本思想是:從圖形的一個(gè)內(nèi)點(diǎn)開始,由內(nèi)向外用給定的顏色畫 點(diǎn)直到邊界為止。如果邊界是以一種顏色指定的,則種子填充算法可逐個(gè)像素地 處理直到遇到邊界顏色為止。從區(qū)域內(nèi)任意一點(diǎn)出發(fā),通過各方向到達(dá)區(qū)域內(nèi)的任意像素。二、項(xiàng)目需求計(jì)算機(jī)圖形學(xué):(Computer Graphics,簡(jiǎn)稱CG)是一種使用數(shù)學(xué)算法將二維或 三維圖形轉(zhuǎn)化為計(jì)算機(jī)顯示器的柵格形式的科學(xué)。計(jì)算機(jī)圖形學(xué)的主要研究?jī)?nèi)容就是研究如何在汁算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。圖形通常由點(diǎn)、線、面、 體等幾何元素和灰度、色彩

3、、線型、線寬等非幾何屬性組成。從處理技術(shù)上來看, 圖形主要分為兩類,一類是基于線條信息表示的。如工程圖、等高線地圖、曲面 的線框圖等,另一類是明暗圖,也就是通常所說的真實(shí)感圖形。計(jì)算機(jī)圖形學(xué)一個(gè)主要目的就是要利用計(jì)算機(jī)產(chǎn)生令人賞心悅目的真實(shí)感圖形。 為此,必須建立圖形所描述場(chǎng)景的幾何表示,再用某種光照模型,計(jì)算在假想的光源、紋理、材質(zhì)屬性下的光照明效果。同時(shí),真實(shí)感圖形計(jì)算的結(jié)果是以數(shù)字 圖像的方式提供的,計(jì)算機(jī)圖形學(xué)也就和圖像處理有著密切的關(guān)系。計(jì)算機(jī)圖形學(xué)的研究?jī)?nèi)容非常廣泛,如圖形硬件、圖形標(biāo)準(zhǔn)、圖形交互技術(shù)、光 柵圖形生成算法、曲線曲面造型、實(shí)體造型、真實(shí)感圖形計(jì)算與顯示算法、非真 實(shí)感

4、繪制,以及科學(xué)計(jì)算可視化、計(jì)算機(jī)動(dòng)畫、自然景物仿真、虛擬現(xiàn)實(shí)等。三、項(xiàng)目設(shè)計(jì)首先,創(chuàng)建Test MFCT程,在工程中的Testview找到OnDraw開始畫圖。用 函數(shù)日lipse先作一個(gè)大圓,使圓大概在對(duì)話框的中央。然后再創(chuàng)建一個(gè)畫筆和 畫刷,畫筆使圓邊界加粗加色,畫刷使邊界內(nèi)填充顏色。接著用相同的方法再畫 四個(gè)同心圓,使每個(gè)圓的邊界顏色不同,邊界內(nèi)填充的顏色也不同,這樣就使的 后畫的圓覆蓋了前面一個(gè)圓圓內(nèi)的填充顏色,以達(dá)到不同顏色圓的效果。其次, 用for(int i=0;i100;i+) 語句設(shè)置圓漸變特效,用“ Sleep(300):設(shè)置圓變 色的快慢。最后,添加上自己想要添加上的文本

5、的內(nèi)容,比如“ happy everyday -、” (made by WZ)。用 “ pDC-SetTextC010r(RGB(124,252, 0); 課隨意設(shè)置文本的顏色??梢园选?happy everyday !”放在for(int i=0;i:Have run /Have run /三占西 石m;Hjn。 f S f五、算法改進(jìn)/ ProjectView.cpp : implementation of the CProjectView class / #include stdafx.h#include Project.h #include ProjectDoc.h#include P

6、rojectView.h #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE口 = _FILE#endif / CProjectViewIMPLEMENT_DYNCREATE(CProjectView, CView)BEGIN_MESSAGE_MAP(CProjectView, CView) /AFX_MSG_MAP(CProjectView)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT wh

7、at you see in these blocks of generated code! /AFX_MSG_MAP/ Standard printing commandsON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView二OnFilePrintPreview)END_MESSAGE_MAP()/ CProjectView construction/destructionCP

8、rojectView:CProjectView()/ TODO: add construction code hereCProjectView:CProjectView()BOOL CProjectView二PreCreateWindow(CREATESTRUCT& cs) / TODO: Modify the Window class or styles here by modifying/ the CREATESTRUCT csreturn CView二PreCreateWindow(cs);/ CProjectView drawingvoid CProjectView:OnDraw(CD

9、C* pDC) CProjectDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);/ TODO: add draw code for native data here for(int i=0;iSelectObject(&newBrush1);pDC-SelectObject(&newpen);pDC-Ellipse(450+i,45+i,850-i,445-i);畫圓CPen newpen2;newpen2.CreatePen(PS_SOLID,25,RGB(0,0,200);CBrush newBrush2;newBrush2.CreateSolid

10、Brush(RGB(100,200,00);pDC-SelectObject(&newBrush2);pDC-SelectObject(&newpen2);pDC-Ellipse(500+i,95+i,800-i,395-i);CPen newpen3;newpen3.CreatePen(PS_SOLID,25,RGB(200,500,100);CBrush newBrush3;newBrush3.CreateSolidBrush(RGB(150,100,50);pDC-SelectObject(&newBrush3);pDC-SelectObject(&newpen3);pDC-Ellips

11、e(550+i,145+i,750-i,345-i);CPen newpen4;newpen4.CreatePen(PS_SOLID,25,RGB(200,50,100);CBrush newBrush4;newBrush4.CreateSolidBrush(RGB(0125,05,50);pDC-SelectObject(&newBrush4);pDC-SelectObject(&newpen4);pDC-Ellipse(600+2*i,195+2*i,700-2*i,295-2*i);CPen newpen5;newpen5.CreatePen(PS_SOLID,25,RGB(200,50

12、0,100);CBrush newBrush5;newBrush5.CreateSolidBrush(RGB(255,0,00);pDC-SelectObject(&newBrush5);pDC-SelectObject(&newpen5);pDC-Ellipse(600+i,195+i,700-i,295-i);CFont newfont,*poldfont;newfont.CreateFont(80,50,0,0,FW_THIN,true,false,false,CHINESEBIG5_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,D

13、EFAULT_QUALITY ,FF_MODERN,宋體);/修改文本字體大小poldfont=pDC-SelectObject(&newfont);pDC-SetTextColor(RGB(255,200, 0);/設(shè)置文本顏色pDC-TextOut(400-i,480,Have Fun !);/文本坐標(biāo)及內(nèi)容CBrush newBrush;newBrush.CreateSolidBrush(RGB(0,0,0);pDC-SelectObject(&newBrush);pDC-Ellipse(630,225,670,265);for(int j=0;jSelectObject(&newfon

14、t);/設(shè)置文本大小pDC-SetTextC010r(RGB(124,252, 0);/設(shè)置文本顏色pDC-TextOut(300,700-j,(made by WZ);)/ CProjectView printingBOOL CProjectView:OnPreparePrinting(CPrintInfo* pInfo)(/ default preparationreturn DoPreparePrinting(pInfo);)void CProjectView二OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)(/ TODO: add

15、 extra initialization before printing)void CProjectView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)(/ TODO: add cleanup after printing)/ CProjectView diagnostics#ifdef _DEBUGvoid CProjectView:AssertValid() const(CView:AssertValid();)void CProjectView:Dump(CDumpContext& dc) const(CView:Dump(dc

16、);)CProjectDoc* CProjectView:GetDocument() / non-debug version is inline (ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CProjectDoc);return (CProjectDoc*)m_pDocument;)#endif/_DEBUG/ CProjectView message handlers六、項(xiàng)目總結(jié)由于屬于初學(xué)MFC且時(shí)間有限,所以對(duì)于設(shè)計(jì)難免也諸多的不足,很多東西 都要馬上學(xué)習(xí)查資料并進(jìn)行初步調(diào)試即拿出來使用。而制作出的前臺(tái)功能單一結(jié)構(gòu)簡(jiǎn)單是一大缺憾,沒有時(shí)間進(jìn)行精加

17、工與進(jìn)一步的調(diào)試補(bǔ)全源程序的不足之處 使之更加完善。不過通過這次的課程設(shè)計(jì),使我們的自學(xué)能力與動(dòng)手實(shí)踐能力得到相當(dāng)大的提 高,編程并不是靠看書本就能學(xué)會(huì)的,而是要靠一步步的調(diào)試一條條指令的修改 試運(yùn)行中學(xué)習(xí)進(jìn)步的,盲目的看書并不能提高自己水平。從這次的課程設(shè)計(jì)我們知道了自己的不足,學(xué)習(xí)的知識(shí)不夠充分,對(duì)于現(xiàn)有資源材料的利用學(xué)習(xí)率太。附錄:1梁俊杰,馮玉才.LBD:基于局部位碼比較的高維空間 KNN搜索 算法J.計(jì)算機(jī)科學(xué).2007(06)2沈永增,葉鴻敏,張敏捷.基于高維空間幾何分析理論的圖像增強(qiáng) 實(shí)現(xiàn)J.計(jì)算機(jī)仿真.2007(06) 3李靜,王文成,吳恩華.基于凸剖分 的多邊形窗口線裁剪算法J.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào). 2007(04)4敖雁,徐辰武.貝葉斯回歸分析方法及其在 QTL作圖中的應(yīng)用J. 揚(yáng)州大學(xué)學(xué)報(bào).2005(02) 5劉勇,徐從富,陳衛(wèi)東,潘云鶴.帶圓弧簡(jiǎn) 單多邊形的面積公式獲取算法 J.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào) .2005(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論