




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課 程 設(shè) 計(jì) 報(bào) 告課程名稱 計(jì)算機(jī)圖形學(xué) 課題名稱 旋轉(zhuǎn)的立體 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí) 計(jì)算機(jī)0881 學(xué) 號(hào) 200813030117 姓 名 張樟 指導(dǎo)教師 劉長(zhǎng)松 郭芳 2011年 9 月 20 日湖南工程學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書課程名稱 計(jì)算機(jī)圖形學(xué) 課 題 旋轉(zhuǎn)的立體 專業(yè)班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名 張樟 學(xué) 號(hào) 200813030117 指導(dǎo)老師 劉長(zhǎng)松 郭芳 審 批 任務(wù)書下達(dá)日期 2011年 9 月 5 日任務(wù)完成日期 2011年 9 月 20 日一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1設(shè)計(jì)內(nèi)容:旋轉(zhuǎn)的立體,(可以是四面體、正方體、長(zhǎng)方形),開始時(shí)可根據(jù)屏幕提示用數(shù)字
2、對(duì)立體進(jìn)行選擇,該立體可以繞垂直(Z)軸;水平軸(X)軸旋轉(zhuǎn),要求按ESC停止轉(zhuǎn)動(dòng),按加快速度,按減慢速度。按向X或正向旋轉(zhuǎn),按向X反向旋轉(zhuǎn)。2設(shè)計(jì)要求:在屏幕上可以選擇不同的立體、用不同的鍵來選拔不同的投影方式;并立即得到圖形的連續(xù)旋轉(zhuǎn)。3.算法提示:用數(shù)組將坐標(biāo)點(diǎn)保存;根據(jù)三維坐標(biāo)變換;將立體的坐標(biāo)變換成不成角度的坐標(biāo)值;再根據(jù)正等軸側(cè)(其它軸測(cè)圖)、或透視坐標(biāo)變換將坐標(biāo)值變換到屏幕上用直線將圖形繪制出來。二、進(jìn)度安排第 2 周 星期一 8:0012:00星期二 8:0012:00星期三 8:0012:00附:課程設(shè)計(jì)報(bào)告裝訂順序:封面、任務(wù)書、目錄、正文、附件(A4大小的圖紙及程序清單)
3、、評(píng)分。 正文的格式:一級(jí)標(biāo)題用3號(hào)黑體,二級(jí)標(biāo)題用四號(hào)宋體加粗,正文用小四號(hào)宋體;行距為22。正文的內(nèi)容:一、課題的主要功能;二、課題的功能模塊的劃分(要求畫出模塊圖);三、主要功能的實(shí)現(xiàn)(至少要有一個(gè)主要模塊的流程圖);四、程序調(diào)試;五、總結(jié);六、附件(所有程序的原代碼,要求對(duì)程序?qū)懗霰匾淖⑨專?。正文總字?jǐn)?shù)要求在5000字以上(不含程序原代碼)。一、需求分析旋轉(zhuǎn)的立體,(可以是四面體、正方體、長(zhǎng)方形),開始時(shí)可根據(jù)屏幕提示用數(shù)字對(duì)立體進(jìn)行選擇,該立體可以繞垂直(Z)軸;水平軸(X)軸旋轉(zhuǎn),要求按ESC停止轉(zhuǎn)動(dòng),按加快速度,按減慢速度。按向X或正向旋轉(zhuǎn),按向X反向旋轉(zhuǎn)。二、 設(shè)計(jì) 利用3維
4、投影將坐標(biāo)轉(zhuǎn)化為2維,畫出圖形??梢岳?維旋轉(zhuǎn)公式X1=X,Y1=YCOSB-ZSINB,Z1=YSINB+COSB. 繞X軸旋轉(zhuǎn)。其他旋轉(zhuǎn)公式同上。設(shè)置change()函數(shù)改變旋轉(zhuǎn)速速,draw()函數(shù)畫出圖像,xuanzhuan()函數(shù)實(shí)現(xiàn)函數(shù)的旋轉(zhuǎn)。Ontimer()函數(shù)實(shí)現(xiàn)定時(shí)功能掌握動(dòng)畫的基本原理,動(dòng)畫就是將一個(gè)靜態(tài)的畫面通過轉(zhuǎn)化為動(dòng)態(tài)的藝術(shù),實(shí)現(xiàn)由靜態(tài)到動(dòng)態(tài)主要由人眼的視差來實(shí)現(xiàn)。三、編碼與測(cè)試/ shapeView.cpp : CshapeView 類的實(shí)現(xiàn)/#include stdafx.h #include shape.h#include shapeDoc.h#includ
5、e shapeView.h#include cp2.h#include #ifdef _DEBUG#define new DEBUG_NEW#endif/ CshapeViewIMPLEMENT_DYNCREATE(CshapeView, CView)BEGIN_MESSAGE_MAP(CshapeView, CView)/ 標(biāo)準(zhǔn)打印命令ON_WM_LBUTTONDOWN()ON_WM_RBUTTONDOWN()ON_WM_MOUSEMOVE()ON_COMMAND(ID_FILE_PRINT, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIREC
6、T, &CView:OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CshapeView 構(gòu)造/析構(gòu)CshapeView:CshapeView()/ TODO: 在此處添加構(gòu)造代碼beta=0; CshapeView:CshapeView()BOOL CshapeView:PreCreateWindow(CREATESTRUCT& cs)/ TODO: 在此處通過修改/ CREATESTRUCT cs 來修改窗口類或樣式return CView:PreCreat
7、eWindow(cs);/ CshapeView 繪制void CshapeView:OnDraw(CDC* /*pDC*/)CshapeDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);if (!pDoc)return;/ TODO: 在此處為本機(jī)數(shù)據(jù)添加繪制代碼drawface();beta+=30;/ CshapeView 打印BOOL CshapeView:OnPreparePrinting(CPrintInfo* pInfo)/ 默認(rèn)準(zhǔn)備return DoPreparePrinting(pInfo);void CshapeView:OnBegi
8、nPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加額外的打印前進(jìn)行的初始化過程void CshapeView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/ TODO: 添加打印后進(jìn)行的清理過程/ CshapeView 診斷#ifdef _DEBUGvoid CshapeView:AssertValid() constCView:AssertValid();void CshapeView:Dump(CDumpContext& dc) constCView:Dump(dc);Cs
9、hapeDoc* CshapeView:GetDocument() const / 非調(diào)試版本是內(nèi)聯(lián)的ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CshapeDoc);return (CshapeDoc*)m_pDocument;#endif /_DEBUG/ CshapeView 消息處理程序void CshapeView:readpoint()int a=100;p30.x=0;p30.y=0;p30.z=0; p31.x=0;p31.y=a;p31.z=0; p32.x=0;p32.y=a;p32.z=a;p33.x=0;p33.y=0;p33.z
10、=a;p34.x=a;p34.y=0;p34.z=0;p35.x=a;p35.y=a;p35.z=0;p36.x=a;p36.y=a;p36.z=a;p37.x=a;p37.y=0;p37.z=a;void CshapeView:readface() f0.en=4;f0.p0=0;f0.p1=3;f0.p2=2;f0.p3=1; f1.en=4;f1.p0=4;f1.p1=5;f1.p2=6;f1.p3=7; f2.en=4;f2.p0=0;f2.p1=4;f2.p2=7;f2.p3=3; f3.en=4;f3.p0=1;f3.p1=2;f3.p2=6;f3.p3=5; f4.en=4;f4
11、.p0=3;f4.p1=7;f4.p2=6;f4.p3=2; f5.en=4;f5.p0=0;f5.p1=1;f5.p2=5;f5.p3=4;cp2 CshapeView:project(cp3 p0)cp2 pt;const double PI =3.1415926;pt.x=p0.y-p0.x/sqrt(2.0);pt.y=p0.z-p0.x/sqrt(2.0);return pt;void CshapeView:line(CDC *pdc,int nface,cp2 p) CPen pen,*oldpen;pen.CreatePen(PS_SOLID,2,RGB(255,0,0);old
12、pen=pdc-SelectObject(&pen);for (int i=0;iMoveTo(p0.x,p0.y);else pdc-LineTo(p1.x,p1.y);pdc-LineTo(p2.x,p2.y);pdc-LineTo(p3.x,p3.y);pdc-LineTo(p0.x,p0.y);void CshapeView:drawface() CRect rect; GetClientRect(&rect); CDC *dc=GetDC(); dc-SetMapMode(MM_ANISOTROPIC); dc-SetWindowExt(rect.Width(),rect.Heigh
13、t(); dc-SetViewportExt(rect.Width(),-rect.Height(); dc-SetViewportOrg(rect.Width()/2,rect.Height()/2); xuanzhuanX(beta); readface(); cp2 p14; for (int nface=0;nface6;nface+) for(int nedge=0;nedgeSetWindowText(_T(斜平影); beta=30; drawface();void CshapeView:onmousedraw1()AfxGetMainWnd()-SetWindowText(_T
14、(平影);afa=45;beta=60;drawface();void CshapeView:OnLButtonDown(UINT nFlags, CPoint point) void CshapeView:OnRButtonDown(UINT nFlags, CPoint point) void CshapeView:OnMouseMove(UINT nFlags, CPoint point)void CshapeView:xuanzhuanX(int theta) int a=100;double p184;double th=theta*3.141592/180;int p4=p30.x
15、=0,p30.y=0,p30.z=0,1,p31.x=0,p31.y=a,p31.z=0,1,p32.x=0,p32.y=a,p32.z=a,1,p33.x=0,p33.y=0,p33.z=a,1,p34.x=a,p34.y=0,p34.z=0,1,p35.x=a,p35.y=a,p35.z=0,1,p36.x=a,p36.y=a,p36.z=a,1,p37.x=a,p37.y=0,p37.z=a,1,;double i=cos(th);double TX4=1,0,0,0,0,cos(th),sin(th),0,0,-sin(th),cos(th),0,0,0,0,1;for(int i=0;i8;i+)for (int j=0;j4;j+)p1ij=pi0*TX0j+pi1*TX1j+pi2*TX2j+pi3*TX3j;for (int i=0;i8;i+) p3i.x=p1i0; p3i.y=p1i1; p3i.z=p1i2;調(diào)試結(jié)果立方體不停的旋轉(zhuǎn) 直至按ESC 停止。四、 心得體會(huì)回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識(shí),而且學(xué)到了很多在書本上所沒有學(xué)到過的知識(shí)。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)資公司前臺(tái)管理制度
- 小微金融公司管理制度
- 醫(yī)院新型門診管理制度
- 券商外包日常管理制度
- 學(xué)校項(xiàng)目落地管理制度
- 黨員練功基地管理制度
- 國(guó)企合同審核管理制度
- 寢室衛(wèi)生消毒管理制度
- 華為銷售流程管理制度
- 小組婦女組長(zhǎng)管理制度
- BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的研究
- 2024年湖北省武漢市高考數(shù)學(xué)一調(diào)試卷
- 銀行業(yè)金融機(jī)構(gòu)數(shù)據(jù)治理指引
- 護(hù)理質(zhì)量安全與風(fēng)險(xiǎn)管理的信息技術(shù)支持
- 2021年高考化學(xué)試卷真題及答案(遼寧卷)(解析版)
- 血液透析充分性評(píng)估及處置課件
- 2022年幼兒識(shí)字:生字卡片-幼兒識(shí)字卡片大全
- 特種作業(yè)人員教育培訓(xùn)方案
- 標(biāo)準(zhǔn)風(fēng)機(jī)樣本參數(shù)表(多種型號(hào))
- 光伏電站繼電保護(hù)運(yùn)行規(guī)程
- 美容整形中的健康管理與風(fēng)險(xiǎn)防控
評(píng)論
0/150
提交評(píng)論