江蘇大學-計算機圖形學實驗1報告(共11頁)_第1頁
江蘇大學-計算機圖形學實驗1報告(共11頁)_第2頁
江蘇大學-計算機圖形學實驗1報告(共11頁)_第3頁
江蘇大學-計算機圖形學實驗1報告(共11頁)_第4頁
江蘇大學-計算機圖形學實驗1報告(共11頁)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實驗報告的內(nèi)容提綱實驗報告應包括以下內(nèi)容:(1)實驗題目(2)實驗內(nèi)容(3)實驗環(huán)境:本次上機實驗所使用的平臺和相關軟件。(4)問題分析:對所要解決的問題進行闡述和分析,提出解決方法,列出解決步驟。(5)算法設計:用流程圖或偽代碼描述解決問題的算法。(6)源代碼(7)程序運行結(jié)果(8)總結(jié)1 實驗報告的格式規(guī)范(1)報告按以下內(nèi)容次序編排:封面、成績評定表、報告。(2)用A4紙,通欄排版,頁邊距:上2.2厘米,下2厘米,左2.7厘米,右2.3厘米;(3)行距一律用1.5倍行距;(4)中文一律用宋體,英文和數(shù)字一律用Times New Roman;(5)一級標題用四號粗

2、體,段前段后不空行,二級標題用小四號粗體,左端不縮進,段前段后均不留多余空格;(6)正文用小四號,每段文字首行縮進2個字符。(7)關于正文中的“圖”和“表”:Ø 圖形下方標示圖號與圖名(見下面示例),圖號與圖名字體要求:中文 宋體 小五號, 數(shù)字和英文 Times New Roman,小五號;圖1 學員報名信息管理模塊Ø 表格上方標示表號與表名(見下面示例),表號與表名字體要求:中文 宋體 小五號, 數(shù)字和英文 Times New Roman,小五號。表1 科目表(tb_Subject)字段名稱數(shù)據(jù)類型是否主鍵/外鍵是否為空備注IDint主鍵科目編號SubNameVarch

3、ar(50)科目名稱 計算機科學與通信工程學院實驗報告課程計算機圖形學實驗題目二維圖形繪制學生姓名學號專業(yè)班級指導教師日期 成績評定表評價內(nèi)容具體內(nèi)容權重得分論證分析方案論證與綜合分析的正確、合理性20%算法設計算法描述的正確性與可讀性20%編碼實現(xiàn)源代碼正確性與可讀性30%程序書寫規(guī)范標識符定義規(guī)范,程序書寫風格規(guī)范20%報告質(zhì)量報告清晰,提交準時10%總 分指導教師簽名1. 實驗內(nèi)容繪制金剛石圖案。金剛石圖案的成圖規(guī)則是:把一個圓周等分成n份,然后每兩點之間連線。當n取奇數(shù)時,該圖案可一筆連續(xù)繪成,即用MoveTo函數(shù)確定一個當前點,然后連續(xù)用LineTo函數(shù)連點成線。繪制下圖所示的魔術三

4、角形圖案 ,采用三種可明顯區(qū)分的顏色填充。 繪制遞歸圓應用遞歸的方法繪制如下所示的圖案2. 實驗環(huán)境操作系統(tǒng):Windows xp編譯環(huán)境:Vc+6.03. 問題分析1.金剛石繪制本實驗的核心是在圓的基礎上繪制金剛石圖案。金剛石圖案是一個二維圖案,僅使用二維坐標(x,y)就可以繪制,本實驗使用數(shù)組實現(xiàn)。金剛石圖案是有依次連接位于圓上的不同等分點的直線段構(gòu)成。等分點個數(shù)越多,金剛石圖案越復雜。2.魔術三角本實驗可以理解為將三個圖形進行重新著色。它們各自的顏色不同。3.遞歸圓:先確定首個圓的中心點坐標和半徑與其周圍八個小圓的中心點坐標和半徑,再根據(jù)遞歸的深度再算出遞歸后圓的半徑,并計算出它們的圓中

5、心點坐標。4. 算法設計1)由于是使用一筆畫的方式繪制圖形,因此算法設計的難點是避免直線段的重復連接。為此設計一個二重循環(huán),代表起點索引號的外層整型變量i從i=0循環(huán)到i=n-2,代表終點所以你好的內(nèi)層整型變量j從j=j+1循環(huán)到j=n-1。以(pi.x,pi.y)為起點,以(pj.x,pj.y)為終點依次連接各線段形成金剛石圖案。2)可以借助一個時間差對三個圖形進行重新著色,但是為他們涂同一種顏色。由于存在延時,所以擁有不同著色次數(shù)的三個圖形仍舊擁有不同的顏色。3)設計一個二重循環(huán),代表起點的外層循環(huán)從i0循環(huán)到in-2,代表終點的內(nèi)層循環(huán)從ji+1循環(huán)到j=n-1。以pi.x,pi.y作為

6、起點,以pj.x,pj.y作為終點繪制連接線。5. 源代碼void CDiamondView:DrawDiamond(int nVertex, int radius,int millisecond)int s=0;double x0=600;double y0=300;double x100,y100;for(int i=0;i<=nVertex;i+)xi=radius*cos(pi*(double(i*2)/nVertex)+x0;yi=radius*sin(pi*(double(i*2)/nVertex)+y0;CDC *pDC = GetDC();CRect rect; GetC

7、lientRect(&rect); CBrush br(RGB(0,0,0); pDC->FillRect(&rect,&br);CPen newPen,*oldPen;newPen.CreatePen(PS_SOLID,2,RGB(255,0,0);oldPen = pDC->SelectObject(&newPen);pDC->MoveTo(x0,y0);for(int j=0;j<nVertex;j+)for(int i=1;i<=(nVertex/2);i+)s=s+i;int a=s%nVertex; pDC->Li

8、neTo(xa,ya);Sleep(millisecond);s=s%nVertex; pDC->SelectObject(oldPen);/繪制魔術三角void CDiamondView:DrawTriangle()int time=100;int t=30;CDC *pDC = GetDC(); InvalidateRect(NULL); UpdateWindow(); while(t>0)POINT vertex16 = 360,116, 105,555,512,555,464,470,258,470,460,116;CBrush newBrush;newBrush.Crea

9、teSolidBrush(RGB(rand()%256,rand()%256,rand()%256);CRgn newRgn1,newRgn2,newRgn3; newRgn1.CreatePolygonRgn(vertex1, 6, WINDING); pDC->FillRgn(&newRgn1,&newBrush); Sleep(time);InvalidateRgn(&newRgn1);/強制清屏POINT vertex26 = 460,116,258,470,362,470,460,290,666,644,718,555; newRgn2.CreatePo

10、lygonRgn(vertex2, 6, WINDING); pDC->FillRgn(&newRgn2,&newBrush); Sleep(time);InvalidateRgn(&newRgn2);/強制清屏POINT vertex36 = 105,555,155,644,666,645,460,290,410,380,512,555; newRgn3.CreatePolygonRgn(vertex3, 6, WINDING); pDC->FillRgn(&newRgn3,&newBrush); Sleep(time);Invalidat

11、eRgn(&newRgn3);/強制清屏t-;/繪制遞歸圓/nDepth:遞歸深度void CDiamondView:DrawRecursionCircle(int nDepth)double x18,y18,x28,y28,a10000,b10000; double t=(2*pi)/8; int n=1;int t1=0;int r=100;int x=300,y=300;CDC *pDC = GetDC(); InvalidateRect(NULL); UpdateWindow(); CPen newPen,*oldPen; newPen.CreatePen(PS_SOLID,2

12、,RGB(0,0,0); oldPen = pDC->SelectObject(&newPen); CRect rect(200,200,400,400); pDC->Ellipse(&rect);while(n<= nDepth)if(n=1) for (int i=0;i<8;i+) x1i=2*r*cos(i*t)+x; y1i=2*r*sin(i*t)+y; CRect rect1(x1i-0.3*r,y1i-0.3*r,x1i+0.3*r,y1i+0.3*r); pDC->Ellipse(&rect1); else if(n=2)

13、for(int i=0;i<8;i+)x2i=x1i; y2i=y1i; for(int i=0;i<8;i+)x=x2i;y=y2i;for(int i=0;i<8;i+) x1i=2*r*cos(i*t)+x; at1=x1i;y1i=2*r*sin(i*t)+y; bt1=y1i; CRect rect1(at1-0.3*r,bt1-0.3*r,at1+0.3*r,bt1+0.3*r); pDC->Ellipse(&rect1); t1+; else int m=1;for(int i=1;i<=n;i+) m=m*8;for(int i=0;i<(m/8);i+)x=ai;y=bi;for(int i=0;i<8;i+) x1i=2*r*cos(i*t)+x; at1=x1i;y1i=2*r*sin(i*t)+y; bt1=y1i; CRect rect1(at1-0.3*r,bt1-0.3*r,at1+0.3*r,bt1+0.3*r); pDC->

溫馨提示

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

最新文檔

評論

0/150

提交評論