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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

5、的內容,比如“ happy everyday -、” (made by WZ)。用 “ pDC-SetTextC010r(RGB(124,252, 0); 課隨意設置文本的顏色。可以把“ 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);/設置文本顏色pDC-TextOut(400-i,480,Have Fun !);/文本坐標及內容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);/設置文本大小pDC-SetTextC010r(RGB(124,252, 0);/設置文本顏色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六、項目總結由于屬于初學MFC且時間有限,所以對于設計難免也諸多的不足,很多東西 都要馬上學習查資料并進行初步調試即拿出來使用。而制作出的前臺功能單一結構簡單是一大缺憾,沒有時間進行精加

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論