![計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換_第1頁(yè)](http://file4.renrendoc.com/view/e30e099a26a61de58d0042626dc7a3c0/e30e099a26a61de58d0042626dc7a3c01.gif)
![計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換_第2頁(yè)](http://file4.renrendoc.com/view/e30e099a26a61de58d0042626dc7a3c0/e30e099a26a61de58d0042626dc7a3c02.gif)
![計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換_第3頁(yè)](http://file4.renrendoc.com/view/e30e099a26a61de58d0042626dc7a3c0/e30e099a26a61de58d0042626dc7a3c03.gif)
![計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換_第4頁(yè)](http://file4.renrendoc.com/view/e30e099a26a61de58d0042626dc7a3c0/e30e099a26a61de58d0042626dc7a3c04.gif)
![計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換_第5頁(yè)](http://file4.renrendoc.com/view/e30e099a26a61de58d0042626dc7a3c0/e30e099a26a61de58d0042626dc7a3c05.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)圖形學(xué)上機(jī)實(shí)驗(yàn)實(shí)現(xiàn)二維圖形的各種轉(zhuǎn)換部門:xxx時(shí)問(wèn):xxx整理范文,僅供參考,可下載自行編輯昆明理工大學(xué)理學(xué)院信息與計(jì)算科學(xué)專業(yè)操作性實(shí)驗(yàn)報(bào)告年級(jí):10級(jí) 姓名:劉陳學(xué)號(hào):201811101128指導(dǎo)教師:胡杰實(shí)驗(yàn)課程名稱:計(jì)算機(jī)圖形學(xué)程序設(shè)計(jì)開課實(shí)驗(yàn)室:理學(xué)院機(jī)房216實(shí)驗(yàn)成績(jī):學(xué)風(fēng)(5觀察能力(15操作能力(30調(diào)試能力(50其它總分實(shí)驗(yàn)內(nèi)容:.實(shí)驗(yàn)/作業(yè)題目:用計(jì)算機(jī)高級(jí)語(yǔ)言VC+6.0實(shí)現(xiàn)計(jì)算機(jī)的基本圖元繪制.實(shí)驗(yàn)/作業(yè)課時(shí):2學(xué)時(shí).實(shí)驗(yàn)過(guò)程(包括實(shí)驗(yàn)環(huán)境、實(shí)驗(yàn)內(nèi)容的描述、完成實(shí)驗(yàn)要求的知識(shí)或技能:實(shí)驗(yàn)環(huán)境:1)硬件:每人一臺(tái)PC機(jī)2)軟件:windows OS, VC+6.0
2、或以上版本。實(shí)驗(yàn)內(nèi)容及步驟:1)在VC+環(huán)境下創(chuàng)建MFCS用程序工程 單文檔)2)編輯菜單資源3)添加菜單命令消息處理函數(shù)4)添加成員函數(shù)實(shí)現(xiàn)繪畫添加二維圖形 各個(gè)變換的矩 陣源碼添加消實(shí)現(xiàn)繪畫添加二維圖形 各個(gè)變換的矩 陣源碼息處理實(shí)現(xiàn)對(duì)二維圖形的.算法描述、流程圖或操作步驟:在lab3View.h文件中的public 內(nèi)添加變量:void ClearMatrix(double A33。 / 清除變換矩陣void GetMaxY( 。 /獲得屏幕的最大y值void GetMaxX( 。 / 獲得屏幕的最大x 值void Draw(double D3,int。 / 繪制圖形void Calcu
3、late(double P03,double T3。 / 矩陣相乘 b5E2RGbCAPvoidKeepMatrix(doubleOrig3,doubleDest43 。 / 保留矩陣值p1EanqFDPwvoid Tmove(double Tx,double Ty 。 / 平移變換計(jì)算void Tscale(double Sx,double Sy 。 / 比例變換計(jì)算void Trotate(double thta 。 / 旋轉(zhuǎn)變換計(jì)算void Treflect(double Fx,double Fy 。 / 對(duì)稱變換計(jì)算void Treform(double b,double c 。 /
4、錯(cuò)切變換計(jì)算在 lab3View.h 文件中的protected 內(nèi)添加變量:int MaxX,MaxY。/屏幕x和y的最大坐標(biāo)double P43 。 / 變換點(diǎn)double TM33 。 / 平移變換矩陣double TS33 。 / 比例變換矩陣double TR33 。 / 旋轉(zhuǎn)變換矩陣double TF33 。 / 對(duì)稱變換矩陣double TC33 。 / 錯(cuò)切變換矩陣double OSquare43/ 矩形坐標(biāo)double OSquare43/ 矩形坐標(biāo)double OTriangle43/ double OTriangle43/ 正三角形坐標(biāo)double OLine43。 /
5、直線坐標(biāo)int p3 。在 lab3View.cpp 文件中添加如下頭文件:#define ROUND(a int(a+0.5/ 四舍五入#define PI 3.1415926/ 圓周率#include math.h/ 數(shù)學(xué)頭文件在 lab3View.cpp 文件中的函數(shù)CLab3View:OnDraw(CDC* pDC下添加如下代碼:DXDiTa9E3dGetMaxX(。GetMaxY(。pDC-MoveTo(MaxX/2,0。 / 繪制坐標(biāo)軸pDC-LineTo(MaxX/2,MaxY。pDC-MoveTo(0,MaxY/2。pDC-LineTo(MaxX,MaxY/2。在 lab3Vi
6、ew.cpp 文件中添加如下的各個(gè)消息處理函數(shù)及代碼:void CLab3View:GetMaxX(/ 獲得屏幕寬度CRect Rect 。GetClientRect(&RectMaxX=Rect.rightvoid CLab3View:GetMaxY(/ 獲得屏幕高度CRect Rect 。GetClientRect(&Rect 。MaxY=Rect.bottom。void CLab3View:ClearMatrix(double A33/ 清除變換矩陣RTCrpUDGiTfor(int i=0。 ifor(int j=0。 jAij=0。 void CLab3View:OnTriangle
7、( / 菜單函數(shù)P00=-100/2。 P01=0 。 P02=1 。 / 繪制等邊三角形5PCzVD7HxAP10=100/2 。 P11=0 。 P12=1 。P20=0 。 P21=100/2*tan(60*PI/180。P22=1 。P30=0 。 P31=0 。 P32=1 。p3=3。KeepMatrix(P,OTriangle 。Draw(P,p3。 InvalidateRect(NULL,FALSE 。 / 重畫窗口void CLab3View:OnSquare(/ 菜單函數(shù)P02=1 。 / 繪制矩形P02=1 。 / 繪制矩形P11=100/2 。 P12=1P21=-10
8、0/2 。 P22=1。P31=-100/2P10=100/2P20=100/2P30=-100/2P32=1 。p3=4。KeepMatrix(P,OSquare 。Draw(P,p3。 InvalidateRect(NULL,FALSE 。 / 重畫窗口void CLab3View:OnLine(/ 菜單函數(shù)P00=-150/2。 P01=0 。 P02=1 。 / 繪制直線P10=150/2 。 P11=0 。 P12=1 。P20=0 。 P21=0 。 P22=1 。P30=0 。 P31=0 。 P32=1 。p3=2。KeepMatrix(P,OLine 。Draw(P,p3。
9、InvalidateRect(NULL,FALSE 。 / 重畫窗口void CLab3View:Draw(double D3,int n/ 繪制圖形 RedrawWindow(。CClientDC dc(this 。CPen pen,*pOldpen 。pen.CreatePen(PS_SOLID,2,RGB(0,0,0 。pOldpen=dc.SelectObject(&pen 。for(int i=0。 iif(i=0Di1dc.MoveTo(ROUND(MaxX/2+Di0,ROUND(MaxY/2- jLBHrnAILgDi1elsedc.LineTo(ROUND(MaxX/2+Di
10、0,ROUND(MaxY/2-Di1 。 xHAQX74J0Xdc.LineTo(ROUND(MaxX/2+D00,ROUND(MaxY/2-D01 。 LDAYtRyKfEdc.SelectObject(pOldpen 。pen.DeleteObject( 。void CLab3View:Calculate(double P03,double T3/兩個(gè)矩陣相乘Zzz6ZB2Ltkdouble Ptemp43。KeepMatrix(P,Ptemp 。for(int i=0。 ifor(int j=0。 jPij=Ptempi0*T0j+Ptempi1*T1j+Ptempi2*T2j。dvzf
11、vkwMI1void CLab3View:OnMENUleft(/ 向左平移Tmove(-10,0 。 void CLab3View:OnMENUright(/ 向右平移Tmove(10,0。 void CLab3View:OnMENUup( / 向上平移Tmove(0,10。 void CLab3View二OnMENUdown( 向下平移Tmove(0,-10。 void CLab3View:OnMENUClockwise(/ 順時(shí)針旋轉(zhuǎn)Trotate(30 。 void CLab3View:OnMENUAnticlockwise(/ 逆時(shí)針旋轉(zhuǎn)Trotate(-30 。 void CLab
12、3View:OnMENUIncrease(/ 放大比例Tscale(2,2 。 void CLab3View:OnMENUDecrease(/ 縮小比例Tscale(0.5,0.5 。 void CLab3View:OnMENUXaxis(/X 軸對(duì)稱 TOC o 1-5 h z Treflect(1,-1。void CLab3View:OnMENUYaxis(/Y 軸對(duì)稱Treflect(-1,1。void CLab3View:OnMENUorg( / 原點(diǎn)對(duì)稱Treflect(-1,-1。void CLab3View:OnMENUXdirectionplus(/X 正向錯(cuò)切 Treform
13、(0,1 。 void CLab3View:OnMENUXdirectionneg(/X 負(fù)向錯(cuò)切Treform(0,-1 。 void CLab3View:OnMENUITYdirectionplus(/Y 正向錯(cuò)切Treform(1,0 。 void CLab3View:OnMENUYdirectionneg(/Y 負(fù)向錯(cuò)切Treform(-1,0 。 void CLab3View:OnMENUReset( / 復(fù)位if(p3=4 TOC o 1-5 h z KeepMatrix(OSquare,P 。if(p3=3KeepMatrix(OTriangle,P 。if(p3=2KeepMa
14、trix(OLine,P 。Draw(P,p3。void CLab3View:Tmove(double Tx,double Ty/ 平移變換矩陣ClearMatrix(TMRedrawWindow(。TM00=1 。 TM11=1 。 TM20=Tx 。 TM21=Ty 。TM22=1 。 rqyn14ZNXICalculate(P,TM 。AfxGetMainWnd(-SetWindowText( 二維幾何變換平移變換 。Draw(P,p3。void CLab3View:Tscale(double Sx,double Sy/ 比例變換矩陣EmxvxOtOcoClearMatrix(TS 。R
15、edrawWindow(。TS00=Sx 。 TS11=Sy 。 TS22=1 。Calculate(P,TS 。AfxGetMainWnd(-SetWindowText( 二維幾何變換比例變換 。Draw(P,p3。void CLab3View:Trotate(double thta/ 旋轉(zhuǎn)變換矩陣ClearMatrix(TR 。RedrawWindow(。void CLab3View:Treform(double b,double c/void CLab3View:Treform(double b,double c/錯(cuò)切變換矩陣TR00=cos(thta*PI/180TR01=sin(th
16、ta*PI/180。 SixE2yXPq5TR10=-sin(thta*PI/180。TR11=cos(thta*PI/180。TR22=1 。 6ewMyirQFLCalculate(P,TR 。AfxGetMainWnd(-SetWindowText( 二維幾何變換旋轉(zhuǎn)變換 。Draw(P,p3。void CLab3View:Treflect(double Fx,double Fy/ 反射變換矩陣 kavU42VRUsClearMatrix(TF 。RedrawWindow(。TF00=Fx 。 TF11=Fy 。 TF22=1 。Calculate(P,TF 。AfxGetMainWnd
17、(-SetWindowText( 二維幾何變換反射變換 。Draw(P,p3。ClearMatrix(TCRedrawWindow(。TC00=1 。 TC01=b 。TC10=c 。 TC11=1 。TC22=1 。 y6v3ALoS89Calculate(P,TC 。AfxGetMainWnd(-SetWindowText( 二維幾何變換錯(cuò)切變換 。Draw(P,p3。void CLab3View:KeepMatrix(double Orig3,doubleDest3 M2ub6vSTnPint i,j 。for(i=0 。 ifor(j=0 。 jDestij=Origij 。6實(shí)驗(yàn)數(shù)據(jù)和實(shí)驗(yàn)結(jié)果用屏幕圖形表示,可另加附頁(yè)):打開Dubug內(nèi)lab3.exe點(diǎn)擊菜單欄“繪畫”,在工作區(qū)繪畫,畫好后單擊各個(gè)功能選項(xiàng)。結(jié)果如下: 初始圖1.平移 左移)平移 上移
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 魯教版地理七年級(jí)下冊(cè)7.2《“魚米之鄉(xiāng)”-長(zhǎng)江三角洲地區(qū)》聽課評(píng)課記錄1
- 華師大版數(shù)學(xué)九年級(jí)下冊(cè)《圓的對(duì)稱性》聽評(píng)課記錄
- 人教版數(shù)學(xué)七年級(jí)下冊(cè)5.1《觀察與思考 看圖時(shí)的錯(cuò)覺(jué)》聽評(píng)課記錄
- 魯人版道德與法治七年級(jí)下冊(cè)第11課第2框《讓友誼之樹常青》聽課評(píng)課記錄1
- 【部編版】七年級(jí)歷史上冊(cè) 《動(dòng)蕩的春秋時(shí)期》公開課聽課評(píng)課記錄
- 冀教版數(shù)學(xué)八年級(jí)下冊(cè)《函數(shù)的自變量取值范圍》聽評(píng)課記錄3
- 一年級(jí)第一學(xué)期班級(jí)工作計(jì)劃班級(jí)
- 小學(xué)生課外實(shí)踐活動(dòng)教學(xué)計(jì)劃書
- 教科版道德與法治九年級(jí)上冊(cè)第六課第一框《第一要義與核心》聽課評(píng)課記錄
- 形象代言人合同范本
- 《洗煤廠工藝》課件
- 鋼結(jié)構(gòu)工程施工(第五版) 課件 2項(xiàng)目四 高強(qiáng)度螺栓
- 機(jī)票預(yù)訂行業(yè)營(yíng)銷策略方案
- 大學(xué)生就業(yè)指導(dǎo)(高等院校學(xué)生學(xué)習(xí)就業(yè)指導(dǎo)課程)全套教學(xué)課件
- 謝爾塔拉露天煤礦變更環(huán)評(píng)
- 《實(shí)驗(yàn)診斷學(xué)》課件
- 眼的解剖結(jié)構(gòu)與生理功能課件
- 小學(xué)網(wǎng)管的工作總結(jié)
- 診所校驗(yàn)現(xiàn)場(chǎng)審核表
- Q/GDW-1738-2012配電網(wǎng)規(guī)劃設(shè)計(jì)技術(shù)導(dǎo)則
- 派出所上戶口委托書
評(píng)論
0/150
提交評(píng)論