版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、計(jì)算機(jī)圖形學(xué) 實(shí)驗(yàn)報(bào)告課程名稱 : 計(jì)算機(jī)圖形學(xué) 實(shí)驗(yàn)名稱 : 圖形繪制與變換 學(xué) 院 : 電子信息工程學(xué)院 專 業(yè) : 計(jì)算機(jī)科學(xué)與技術(shù) 班 級 : 11計(jì)科本 01班 學(xué) 號 : 111102020103 姓 名 : 張慧 指導(dǎo)教師 : 王征風(fēng) 二零一四年目錄一、引言3二、設(shè)計(jì)需求42.1 設(shè)計(jì)目標(biāo)42.2 設(shè)計(jì)環(huán)境42.2.1 VC+6.042.2.2 MFC42.3 設(shè)計(jì)題目及要求52.4 總體流程圖5三、課程設(shè)計(jì)原理53.1 實(shí)現(xiàn)的算法53.1.2 Bresenham算法畫直線63.1.3 中心點(diǎn)算法畫圓和橢圓63.2 圖形變換的基本原理83.2.1 平移變換83.2.2 旋轉(zhuǎn)變換8
2、3.2.3 比例變換9四、總體設(shè)計(jì)與功能實(shí)現(xiàn)94.1 主要界面設(shè)計(jì)94.2 設(shè)置顏色界面94.2.1 界面設(shè)置代碼94.2.2 運(yùn)行結(jié)果104.3 二維線畫圖元實(shí)現(xiàn)104.4 畫多邊形功能的實(shí)現(xiàn)144.5 畫Bezier曲線功能的實(shí)現(xiàn)154.6 二維圖形變換的實(shí)現(xiàn)164.7 三維圖形的變換18五、實(shí)驗(yàn)心得體會(huì)一、引言 計(jì)算機(jī)圖形學(xué)(Computer Graphics,簡稱CG)是一種使用數(shù)學(xué)算法將二維或三維圖形轉(zhuǎn)化為計(jì)算機(jī)顯示器的柵格形式的科學(xué)。簡單地說,計(jì)算機(jī)圖形學(xué)的主要研究內(nèi)容就是研究如何在計(jì)算機(jī)中表示圖形、以及利用計(jì)算機(jī)進(jìn)行圖形的計(jì)算、處理和顯示的相關(guān)原理與算法。是計(jì)算機(jī)科學(xué)的一個(gè)分支領(lǐng)
3、域,主要關(guān)注數(shù)字合成與操作視覺的圖形內(nèi)容。計(jì)算機(jī)圖形學(xué)研究的是應(yīng)用計(jì)算機(jī)產(chǎn)生圖像的所有工作,不管圖像是靜態(tài)的還是動(dòng)態(tài)的,可交互的還是固定的,等等。圖形API是允許程序員開發(fā)包含交互式計(jì)算機(jī)圖形操作的應(yīng)用而不需要關(guān)注圖形操作細(xì)節(jié)或任務(wù)系統(tǒng)細(xì)節(jié)的工具集。計(jì)算機(jī)圖形學(xué)有著廣泛的應(yīng)用領(lǐng)域,包括物理、航天、電影、電視、游戲、藝術(shù)、廣告、通信、天氣預(yù)報(bào)等幾乎所有領(lǐng)域都用到了計(jì)算機(jī)圖形學(xué)的知識(shí),這些領(lǐng)域通過計(jì)算機(jī)圖形學(xué)將幾何模型生成圖像,將問題可視化從而為各領(lǐng)域更好的服務(wù)。 計(jì)算機(jī)圖形學(xué)利用計(jì)算機(jī)產(chǎn)生讓人賞心悅目的視覺效果,必須建立描述圖形的幾何模型還有光照模型,再加上視角、顏色、紋理等屬性,再經(jīng)過模型變換
4、、視圖變換、投影操作等,這些步驟從而實(shí)現(xiàn)一個(gè)完整的OpenGL程序效果。OpenGL是一個(gè)開放的三維圖形軟件包,它獨(dú)立于窗口系統(tǒng)和操作系統(tǒng),以它為基礎(chǔ)開發(fā)的應(yīng)用程序可以十分方便地在各種平臺(tái)間移植。計(jì)算機(jī)圖形學(xué)通過應(yīng)用OpenGL的功能,使得生成的圖形效果具有高度真實(shí)感。學(xué)習(xí)計(jì)算機(jī)圖形學(xué)的重點(diǎn)是掌握OpenGL在圖形學(xué)程序中的使用方法。事實(shí)上,圖形學(xué)也把可以表示幾何場景的曲線曲面造型技術(shù)和實(shí)體造型技術(shù)作為其主要的研究內(nèi)容。同時(shí),真實(shí)感圖形計(jì)算的結(jié)果是以數(shù)字圖像的方式提供的,計(jì)算機(jī)圖形學(xué)也就和圖像處理有著密切的關(guān)系。通過21世紀(jì)是信息的時(shí)代,在日新月異的科技更新中相信計(jì)算機(jī)會(huì)發(fā)揮越來越重要的作用,
5、計(jì)算機(jī)圖形學(xué)也會(huì)在更多的領(lǐng)域所應(yīng)用,雖然我國在這方面還比較薄弱,但相信會(huì)有越來越好的時(shí)候的。二、設(shè)計(jì)需求2.1 設(shè)計(jì)目標(biāo) 以圖形學(xué)算法為目標(biāo),深入研究。繼而策劃、設(shè)計(jì)并實(shí)現(xiàn)一個(gè)能夠表現(xiàn)計(jì)算機(jī)圖形學(xué)算法原理的或完整過程的演示系統(tǒng),并能從某些方面作出評價(jià)和改進(jìn)意見。通過完成一個(gè)完整程序,經(jīng)歷策劃、設(shè)計(jì)、開發(fā)、測試、總結(jié)和驗(yàn)收各階段,達(dá)到:鞏固和實(shí)踐計(jì)算機(jī)圖形學(xué)課程中的理論和算法;學(xué)習(xí)表現(xiàn)計(jì)算機(jī)圖形學(xué)算法的技巧;培養(yǎng)認(rèn)真學(xué)習(xí)、積極探索的精神。2.2 設(shè)計(jì)環(huán)境 2.2.1 VC+6.0 VC+6.0是 Microsoft 公司推出的一個(gè)基于 Windows 系統(tǒng)平臺(tái)、可視化的 集成開發(fā)環(huán)境,它的源程序
6、按 C+語言的要求編寫,并加入了微軟提供的功能 強(qiáng)大的 MFC(Microsoft Foundation Class)類庫。MFC 中封裝了大部分 Windows API 函數(shù)和 Windows 控件,它包含的功能涉及到整個(gè) Windows 操作系統(tǒng)。MFC 不僅給用戶提供了 Windows 圖形環(huán)境下應(yīng)用程序的框架, 而且還提供了創(chuàng)建應(yīng) 用程序的組件,這樣,開發(fā)人員不必從頭設(shè)計(jì)創(chuàng)建和管理一個(gè)標(biāo)準(zhǔn) Windows 應(yīng) 用程序所需的程序,而是從一個(gè)比較高的起點(diǎn)編程,故節(jié)省了大量的時(shí)間。另 外,它提供了大量的代碼,指導(dǎo)用戶編程時(shí)實(shí)現(xiàn)某些技術(shù)和功能。因此,使用VC+提供的高度可視化的應(yīng)用程序開發(fā)工具
7、和 MFC 類庫,可使應(yīng)用程序開發(fā)變 得簡單。 2.2.2 MFC MFC(Microsoft Foundation Classes) ,是 一 個(gè) 微 軟 公 司 提 供 的 類 庫 ( class libraries)以 C+類的形式封裝了 Windows 的 API, , 它包含了窗口等許多類的定義。各種類的集合構(gòu)成了一個(gè)應(yīng)運(yùn)程序的框架結(jié)構(gòu),以減少應(yīng)用程序開發(fā)人員的工作 量。其中包含的類包含大量 Windows 句柄封裝類和很多 Windows 的內(nèi)建控件和組 件的封裝類。MFC 6.0 版本封裝了大約 200 個(gè)類,其中的一些可以被用戶直接使用。例如CWnd 類封裝了窗口的功能,包括打
8、印文本、繪制圖形及跟蹤鼠標(biāo)指針的移動(dòng)等;CsplitterWnd 類是從 CWnd 類派生出來的,繼承了基類或稱父類 CWnd 類的所 有特 性,但增加了自己的功能,實(shí)現(xiàn)拆分窗口,使窗口至少可被拆分成兩個(gè)窗口,用戶 可以移動(dòng)兩個(gè)窗口之間的邊框來改變窗口的大??;CtoolBar 類可以定義工具欄等。MFC 命名的慣例是類的名字通常是由“C”打頭;成員變量使用前綴“m_”,接著使用一個(gè)字母來指明數(shù)據(jù)類型,然后是變量的名稱;所有的單詞用大寫字母開頭。2.3 設(shè)計(jì)題目及要求(1) 題目:實(shí)現(xiàn)多邊形和曲線的繪制和變換(2) 要求:學(xué)會(huì)使用VC+編寫實(shí)現(xiàn)圖形的繪制變換,需包括直線、曲線、多邊形的繪制和變換
9、,及三維立體圖形的相應(yīng)變換.2.4 總體流程圖三、課程設(shè)計(jì)原理3.1 實(shí)現(xiàn)的算法 3.1.1 DDA算法畫直線 DDA是數(shù)字微分分析式(Digital Differential Analyzer)的縮寫。 已知直線兩端點(diǎn)(x1,y1)、(x2,y2)則斜率m為:m = (y2-y1)/(x2-x1)= Dx/Dy;直線中的每一點(diǎn)坐標(biāo)都可以由前一點(diǎn)坐標(biāo)變化一個(gè)增量(Dx, Dy)而得到,即表示為遞歸式: xi+1=xi+Dx yi+1=yi+Dy 。遞歸式的初值為直線的起點(diǎn)(x1, y1),這樣,就可以用加法來生成一條直線。具體算法是:該算法適合所有象限,其中用了用了兩個(gè)函數(shù)如:Integer(
10、-8.5)= -9; Integer(8.5) =8;Sign(i),根據(jù)i的正負(fù),分別得到-1,0,+1;相應(yīng)代碼: /DDA DrawLine if(abs(x2-x1) abs(y2-y1) length = abs(x2-x1); else length = abs(y2-y1); Dx = (x2-x1)/length; Dy = (y2-y1)/length; x = x1+0.5*Sign(Dx); y = x2 + 0.5*Sign(Dy); i = 1; while(i SetPixel(x,y,color); while(x=xP) if(dSetPixel(x,y,col
11、or); x=a; y=0; d=4*(squarea-a*squareb)+squareb; pDC-SetPixel(x,y,color) ; while(yyP) if(dSetPixel(x,y,color);編寫OnDraw函數(shù)如下:void CMy2_9View:OnDraw(CDC* pDC)CMy2_9Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);MidPointEllipse(pDC,500,300,RGB(0,0,0);(2)中心點(diǎn)算法畫橢圓我們先考慮圓心在原點(diǎn)的橢圓的生成,對于中心不是原點(diǎn)的橢圓,可以通過坐標(biāo)的平移變換獲得相應(yīng)位
12、置的橢圓。中心在原點(diǎn)。焦點(diǎn)在坐標(biāo)軸上的標(biāo)準(zhǔn)橢圓具有X軸對稱、Y軸對稱和原點(diǎn)對稱特性,已知橢圓上第一象限的P點(diǎn)坐標(biāo)是(x, y),則橢圓在另外三個(gè)象限的對稱點(diǎn)分別是(x, -y)、(-x, y)和(-x, -y)。因此,只要畫出第一象限的四分之一橢圓,就可以利用這三個(gè)對稱性得到整個(gè)橢圓。相應(yīng)代碼:void MP_Ellipse(int xc , int yc , int a, int b) double sqa = a * a;double sqb = b * b;double d = sqb + sqa * (-b + 0.25);int x = 0;int y = b;EllipsePlot
13、(xc, yc, x, y);while( sqb * (x + 1) sqa * (y - 0.5)if (d 0)if (d 0)d += sqb * (2 * x + 2) + sqa * (-2 * y + 3);x+; else d += sqa * (-2 * y + 3); y-;EllipsePlot(xc, yc, x, y);3.2 圖形變換的基本原理 3.2.1 平移變換平移變換函數(shù)如下:void glTranslatefd(TYPE x, TYPE y, TYPE z);三個(gè)函數(shù)參數(shù)就是目標(biāo)分別沿三個(gè)軸向平移的偏移量。這個(gè)函數(shù)表示用于這三個(gè)偏移量生成的矩陣乘以當(dāng)前矩陣。
14、當(dāng)參數(shù)是(0.0,0.0,0.0)時(shí),表示對函數(shù)glTranslate*()的操作是單位矩陣,也就是對物體沒有影響。 3.2.2 旋轉(zhuǎn)變換旋轉(zhuǎn)變換函數(shù)如下:Void glRotafdTYPE angle, TYPE x, TYPE y, TYPE z); 函數(shù)中第一個(gè)參數(shù)是表示目標(biāo)沿從點(diǎn)(x,y,z)到原點(diǎn)方向逆時(shí)針旋轉(zhuǎn)的角度,后三個(gè)參數(shù)是旋轉(zhuǎn)的方向點(diǎn)坐標(biāo)。這個(gè)函數(shù)表示用這四個(gè)參數(shù)生成的矩陣乘以當(dāng)前矩陣。當(dāng)角度參數(shù)是0.0時(shí),表示對物體沒有影響。 3.2.3 比例變換比例變換函數(shù)如下:Void glScalefd(TYPE x, TYPE y, TYPE z);單個(gè)函數(shù)參數(shù)值就是目標(biāo)分別沿三個(gè)
15、軸方向縮放的比例因子。這個(gè)函數(shù)表示用這三個(gè)比例因子生成的矩陣乘以當(dāng)前矩陣。這個(gè)函數(shù)能完成沿相應(yīng)的軸對目標(biāo)進(jìn)行拉伸、壓縮和反射三項(xiàng)功能。以參數(shù)x為例,若當(dāng)x大于1.0時(shí),表示沿x方向拉伸目標(biāo);若x小于1.0,表示沿x軸方向收縮目標(biāo);若x=-1.0表示沿x軸反射目標(biāo)。其中參數(shù)為負(fù)值時(shí)表示對目標(biāo)進(jìn)行相應(yīng)軸的反射變換。四、總體設(shè)計(jì)與功能實(shí)現(xiàn) 4.1 主要界面設(shè)計(jì) 4.2 設(shè)置顏色界面 4.2.1 界面設(shè)置代碼:void CGraphicsView:OnClock() WHAT_TO_DO=ID_CLOCK; clean();int xx = 450, yy = 300, r = 150,d = 5;i
16、nt i, white = RGB (255,255,255);mile (xx, yy, r, COLOR);Matrix m (xx, 240), s (xx, 200);Matrix t1 (xx, yy, true), t2 (-xx, -yy, true), mr ( PI/1800 ), sr ( PI/30 );mile (m.getx (), m.gety (), d+1, COLOR);mile (s.getx (), s.gety (), d, COLOR);dne ( m.getx (), m.gety (), xx, yy, COLOR );dne ( s.getx (
17、), s.gety (), xx, yy, COLOR );for (i=0;i120;i+):Sleep (80);mile (m.getx (), m.gety (), d+1, white);mile (s.getx (), s.gety (), d, white);dne ( m.getx (), m.gety (), xx, yy, white );dne ( s.getx (), s.gety (), xx, yy, white );m = t1*mr*t2*m;s = t1*sr*t2*s;mile (m.getx (), m.gety (), d+1, COLOR);mile
18、(s.getx (), s.gety (),d, COLOR);dne ( m.getx (), m.gety (), xx, yy, COLOR );dne ( s.getx (), s.gety (), xx, yy, COLOR ); 4.2.2 點(diǎn)擊“設(shè)置-顏色”后,運(yùn)行結(jié)果如下:4.3 二維線畫圖元實(shí)現(xiàn) 4.3.1 實(shí)現(xiàn)代碼:void CGraphicsView:MidCir(CDC *pdc, int x0, int y0, int x1, int y1, int color) int r,x,y,deltax,deltay,d;r=sqrt(double)x1-(double)x
19、0)*(double)x1-(double)x0)+(double)y1-(double)y0)*(double)y1-(double)y0);x=0;y=r;deltax=3;deltay=2-r-r;d=1-r;while(xSetPixel(x+x0,y+y0,color);:Sleep(time);pdc-SetPixel(-x+x0,y+y0,color);:Sleep(time);pdc-SetPixel(x+x0,-y+y0,color);:Sleep(time);pdc-SetPixel(-x+x0,-y+y0,color);:Sleep(time);pdc-SetPixel(
20、y+x0,x+y0,color);:Sleep(time);pdc-SetPixel(-y+x0,x+y0,color);:Sleep(time);pdc-SetPixel(y+x0,-x+y0,color);:Sleep(time);pdc-SetPixel(-y+x0,-x+y0,color);if(dSetPixelV(x+x0,y+y0,color);pdc-SetPixelV(x+x0,-y+y0,color);while(bb*(x+1)aa*(y-0.5) yy=y;if(d1SetPixelV(x+x0,y+y0,color);:Sleep(time);pdc-SetPixel
21、V(-x+x0,y+y0,color);:Sleep(time);pdc-SetPixelV(x+x0,-y+y0,color);:Sleep(time);pdc-SetPixelV(-x+x0,-y+y0,color);d2=bb*(x+0.5)*(x+0.5)+aa*(y-1)*(y-1)-aa*bb;deltax-=bb;deltay+=aa;while(y0)if(d2SetPixelV(x+x0,y+y0,color);:Sleep(time);pdc-SetPixelV(-x+x0,y+y0,color);:Sleep(time);pdc-SetPixelV(x+x0,-y+y0,
22、color);:Sleep(time);pdc-SetPixelV(-x+x0,-y+y0,color);void CGraphicsView:DDALine(CDC *pdc, int x0, int y0, int x1, int y1, int color)int xx,yy,s,s1,s2,di;float dx,dy,k,x,y;dx=x1-x0;if(dx=0) s1=1;else s1=-1;dy=y1-y0;if(dy=0) s2=1;elses2=-1;dx=abs(dx);dy=abs(dy);if(dx=dy) s=0;di=(int)dx;k=dy/dx*s2;else
23、s=1;di=(int)dy;k=dx/dy*s1;x=x0;y=y0;for(int i=0;iSetPixel(xx,yy,color);x+=s1;y+=k;elsexx=(int)(x+0.5);yy=(int)y;:Sleep(time);pdc-SetPixel(xx,yy,color);y+=s2;x+=k; 4.3.2 點(diǎn)擊二維線畫圖元,課相應(yīng)畫出直線、圓和橢圓,結(jié)果如下: 4.4 畫多邊形功能的實(shí)現(xiàn) 4.4.1 部分實(shí)現(xiàn)代碼:void CGraphicsView:OnDrawDuoBX() Vertex_Count dlg;if(dlg.DoModal()=IDOK)if(d
24、lg.m_vertex_countMAX)MessageBox(輸入頂點(diǎn)數(shù)過大);return;VertexTotal=dlg.m_vertex_count;CDC *pDC=GetDC();CPen pen(PS_SOLID,2,RGB(255,255,255);CPen *pOldpen=pDC-SelectObject(&pen);pDC-MoveTo(int)(inVertexArray0.x+0.5),(int)(inVertexArray0.y+0.5);int i;for(i=1;iLineTo(int)(inVertexArrayi.x+0.5),(int)(inVertexA
25、rrayi.y+0.5);pDC-LineTo(int)(inVertexArray0.x+0.5),(int)(inVertexArray0.y+0.5);pDC-SelectObject(pOldpen);ReleaseDC(pDC);inLength=0;outLength=0;WHAT_TO_DO=ID_DrawDuoBX; 4.4.2 點(diǎn)擊多邊形,輸入定點(diǎn)個(gè)數(shù),可繪制出相應(yīng)的多邊形,結(jié)果如下: 4.5 畫Bezier曲線功能的實(shí)現(xiàn) 4.5.1 部分實(shí)現(xiàn)代碼:void CGraphicsView:OnBezier() / TODO: Add your command handler c
26、ode hereWHAT_TO_DO=ID_BEZIER;CDC *p=GetDC ();p-TextOut (10, 20, PS:鼠標(biāo)左鍵添加曲線,鼠標(biāo)右鍵修改曲線.);ReleaseDC (p);void CGraphicsView:OnBezierClear() n = -1;RedrawWindow();void CGraphicsView:DrawBezier(DPOINT *p)if (n = 0) return;if(pn.x p0.x-1) & (pn.y p0.y-1)pDC-SetPixel(p0.x, p0.y, COLOR);return;DPOINT *p1;p1
27、= new DPOINTn+1;int i, j;p10 = p0;for(i=1; i=n; i+)for(j=0; j= 0 ) pointscurrent.x = point.x;pointscurrent.y = point.y;RedrawWindow();if(current2 = 0 ) pointscurrent2.x = point.x;pointscurrent2.y = point.y;RedrawWindow();break;default:break;CView:OnMouseMove(nFlags, point); 4.5.2 點(diǎn)擊曲線-Beizer曲線,可實(shí)現(xiàn)Be
28、izer曲線的繪制功能,繪制結(jié)果如下圖: 圖 1 圖 2 4.5.3 點(diǎn)擊曲線-Beizer曲線,可實(shí)現(xiàn)Beizer曲線的移動(dòng),鼠標(biāo)點(diǎn)擊其中的任一點(diǎn),可實(shí)現(xiàn)曲線的移動(dòng),繪制結(jié)果如下圖: 上圖1移動(dòng)后的曲線 上圖2移動(dòng)后的曲線4.6 二維圖形變換的實(shí)現(xiàn) 可以實(shí)現(xiàn)一橢圓在界面上的隨機(jī)移動(dòng),一圓在界面上饒某一點(diǎn)的旋轉(zhuǎn)和一正方形由大變小在變大的變化,部分實(shí)現(xiàn)代碼如下:void CGraphicsView:OnXuanzhuan() WHAT_TO_DO=ID_XUANZHUAN;time=0;OnClear();CClientDC dc(this);CDC* pDC=&dc;int i, white=
29、RGB(255,255,255), point 22=300,200,300,250;Matrix a (point00,point01), b (point10,point11);int midx=(point00+point10)/2,midy=(point01+point11)/2;Matrix t1 (midx, midy,true), t2 (-midx, -midy,true); Matrix r (PI/50);Matrix temp (midx, midy,true);temp = t1*r*t2;for(i=0;i200;i+):Sleep(50);MidCir(pDC, a
30、.getx(), a.gety(), b.getx(), b.gety(), white);a = temp*a;b = temp*b;MidCir(pDC, a.getx(), a.gety(), b.getx(), b.gety(), COLOR);for(i=0;iSetCheck(WHAT_TO_DO=ID_XUANZHUAN);void CGraphicsView:OnScale() WHAT_TO_DO=ID_SCALE;OnClear();CClientDC dc(this);CDC* pDC=&dc;time=0;int i,white=RGB(255,255,255), po
31、int42=300,250,400,250,300,300,400,300;float sx=0.9,sy=0.85;int midx=(point00+point30)/2,midy=(point01+point31)/2;Matrix s1 (sx,sy),s2 (1/sx,1/sy);Matrix t1 (midx, midy,true), t2 (-midx, -midy,true); Matrix a (point00,point01), b (point10,point11);Matrix c (point20,point21), d (point30,point31);Matri
32、x temp (midx, midy,true);temp = t1*s1*t2;DDALine (pDC,a.getx(),a.gety(),b.getx(),b.gety(),COLOR);DDALine (pDC,a.getx(),a.gety(),c.getx(),c.gety(),COLOR);DDALine (pDC,c.getx(),c.gety(),d.getx(),d.gety(),COLOR);DDALine (pDC,d.getx(),d.gety(),b.getx(),b.gety(),COLOR);for(i=0;i20;i+):Sleep (30);DDALine
33、(pDC,a.getx(),a.gety(),b.getx(),b.gety(),white);DDALine (pDC,a.getx(),a.gety(),c.getx(),c.gety(),white);DDALine (pDC,c.getx(),c.gety(),d.getx(),d.gety(),white);DDALine (pDC,d.getx(),d.gety(),b.getx(),b.gety(),white);a=temp*a;b=temp*b;c=temp*c;d=temp*d;DDALine (pDC,a.getx(),a.gety(),b.getx(),b.gety()
34、,COLOR);DDALine (pDC,a.getx(),a.gety(),c.getx(),c.gety(),COLOR);DDALine (pDC,c.getx(),c.gety(),d.getx(),d.gety(),COLOR);DDALine (pDC,d.getx(),d.gety(),b.getx(),b.gety(),COLOR);temp = t1*s2*t2;for(i=0;iSetCheck(WHAT_TO_DO=ID_SCALE);4.7 三維圖形的變換 主要實(shí)現(xiàn)三維圖形的上下左右平移,分別繞X軸Y軸Z軸的旋轉(zhuǎn),放大和縮小,以及正方體六個(gè)面的顏色變換,除此之外,還可以選擇背景顏色的改變 4.7.1 部分代碼如下:void CGraphicsView:OnAoduomianti() WHAT_TO_DO=ID_AODUOMIANTI;CDrawDLG dlg1;dlg1.DoModal();void CGraphicsView:OnUpdateAoduomianti(CCmdUI* pCmdUI) pCmdUI-SetCheck(WHAT_TO_DO=ID_AODUOMIANTI); void CDrawDLG:OnPaint() CPaintDC dc(this); / device context for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年網(wǎng)絡(luò)內(nèi)容歸屬確認(rèn)合同
- 2025年合資國際合作協(xié)議
- 2025年企業(yè)長期項(xiàng)目員工外包協(xié)議
- 二零二五版39上公司兜底協(xié)議:農(nóng)業(yè)現(xiàn)代化項(xiàng)目合作保障合同
- 2025年主持人簽約協(xié)議
- 2025年醫(yī)療服務(wù)臺(tái)賬協(xié)議
- 2025年減貧發(fā)展贈(zèng)與合同
- 2025年健身俱樂部競業(yè)禁止協(xié)議
- 二零二五版電子商務(wù)平臺(tái)商品買賣協(xié)議3篇
- 二零二五版國防生國防知識(shí)普及協(xié)議3篇
- 2025年度土地經(jīng)營權(quán)流轉(zhuǎn)合同補(bǔ)充條款范本
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 2025年上海市閔行區(qū)中考數(shù)學(xué)一模試卷
- 2025中國人民保險(xiǎn)集團(tuán)校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- Python試題庫(附參考答案)
- 廣東省藥品電子交易平臺(tái)結(jié)算門戶系統(tǒng)會(huì)員操作手冊
- DB32T 3960-2020 抗水性自修復(fù)穩(wěn)定土基層施工技術(shù)規(guī)范
- 說明書hid500系列變頻調(diào)速器使用說明書s1.1(1)
- 大斷面隧道設(shè)計(jì)技術(shù)基本原理
- 41某31層框架結(jié)構(gòu)住宅預(yù)算書工程概算表
- 成都市國土資源局關(guān)于加強(qiáng)國有建設(shè)用地土地用途變更和
評論
0/150
提交評論