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

下載本文檔

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

文檔簡介

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

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

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

4、繪制,以及科學(xué)計算可視化、計算機動畫、自然景物仿真、虛擬現(xiàn)實等。三、項目設(shè)計首先,創(chuàng)建Test MFCT程,在工程中的Testview找到OnDraw開始畫圖。用 函數(shù)日lipse先作一個大圓,使圓大概在對話框的中央。然后再創(chuàng)建一個畫筆和 畫刷,畫筆使圓邊界加粗加色,畫刷使邊界內(nèi)填充顏色。接著用相同的方法再畫 四個同心圓,使每個圓的邊界顏色不同,邊界內(nèi)填充的顏色也不同,這樣就使的 后畫的圓覆蓋了前面一個圓圓內(nèi)的填充顏色,以達到不同顏色圓的效果。其次, 用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五、算法改進/ 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 !);/文本坐標及內(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六、項目總結(jié)由于屬于初學(xué)MFC且時間有限,所以對于設(shè)計難免也諸多的不足,很多東西 都要馬上學(xué)習(xí)查資料并進行初步調(diào)試即拿出來使用。而制作出的前臺功能單一結(jié)構(gòu)簡單是一大缺憾,沒有時間進行精加

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

溫馨提示

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

評論

0/150

提交評論