第二計(jì)算機(jī)圖形系統(tǒng)_第1頁(yè)
第二計(jì)算機(jī)圖形系統(tǒng)_第2頁(yè)
第二計(jì)算機(jī)圖形系統(tǒng)_第3頁(yè)
第二計(jì)算機(jī)圖形系統(tǒng)_第4頁(yè)
第二計(jì)算機(jī)圖形系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第二計(jì)算機(jī)圖形系統(tǒng)第1頁(yè),共88頁(yè),2023年,2月20日,星期一目錄2.1計(jì)算機(jī)圖形系統(tǒng)概述2.2圖形輸入設(shè)備2.3圖形繪制設(shè)備2.4圖形顯示系統(tǒng)2.5圖形軟件標(biāo)準(zhǔn)2.6VisualC++的圖形程序開發(fā)方法2.7OpenGL程序設(shè)計(jì)基礎(chǔ)第2頁(yè),共88頁(yè),2023年,2月20日,星期一2.1圖形系統(tǒng)2.1.1計(jì)算機(jī)圖形系統(tǒng)的結(jié)構(gòu)2.1.2計(jì)算機(jī)圖形系統(tǒng)的基本功能第3頁(yè),共88頁(yè),2023年,2月20日,星期一2.1.1計(jì)算機(jī)圖形系統(tǒng)的結(jié)構(gòu)計(jì)算機(jī)圖形系統(tǒng)圖形軟件系統(tǒng)圖形硬件系統(tǒng)圖形應(yīng)用軟件圖形支撐軟件圖形應(yīng)用數(shù)據(jù)結(jié)構(gòu)圖形輸入設(shè)備圖形輸出設(shè)備第4頁(yè),共88頁(yè),2023年,2月20日,星期一2.1.2計(jì)算機(jī)圖形系統(tǒng)的基本功能1、處理功能:包含形體設(shè)計(jì)、分析,圖形描述,基本幾何元素(點(diǎn)、線、面等)的表示、求交運(yùn)算、分類、幾何變換,光、色模型的建立和計(jì)算,干涉檢測(cè)等。2、存儲(chǔ)功能:存儲(chǔ)圖形數(shù)據(jù),包括圖形幾何數(shù)據(jù)、拓?fù)潢P(guān)系及屬性信息等。3、交互功能:通過圖形顯示器和圖形輸入設(shè)備實(shí)現(xiàn)用戶與圖形系統(tǒng)的人機(jī)通信。用戶通過顯示屏幕觀察設(shè)計(jì)的圖形,利用交互輸入設(shè)備對(duì)圖形進(jìn)行在線的操作(增加、刪除、修改等)以得到滿意的設(shè)計(jì)結(jié)果。4、輸入功能:將圖形的形狀、尺寸等有關(guān)的圖形數(shù)據(jù)和操作命令輸入到計(jì)算機(jī)中去。5、輸出功能:把所設(shè)計(jì)的圖形從計(jì)算機(jī)中輸出出來,包括顯示輸出和硬拷貝輸出兩種形式。第5頁(yè),共88頁(yè),2023年,2月20日,星期一2.2圖形輸入設(shè)備作用:

圖形輸入設(shè)備用于輸入圖形數(shù)據(jù)或圖形操作命令分類:

一般應(yīng)用輸入設(shè)備類:鼠標(biāo)、鍵盤、光筆等特殊用途的圖形輸入設(shè)備:數(shù)據(jù)手套、觸摸板、圖像掃描儀等第6頁(yè),共88頁(yè),2023年,2月20日,星期一2.2.1一般應(yīng)用圖形輸入設(shè)備控制光標(biāo)移動(dòng)用來輸入定位坐標(biāo)或選擇操作的輸入設(shè)備,它將移動(dòng)距離及方向的信息變成數(shù)字脈沖信息送給計(jì)算機(jī),由計(jì)算機(jī)轉(zhuǎn)換成光標(biāo)的坐標(biāo)數(shù)據(jù),從而達(dá)到定位目的。分為:機(jī)械式和光電式。最基本的輸入設(shè)備,具有ASCII編碼鍵、命令控制鍵和功能鍵,能用來輸入圖形坐標(biāo)、選擇菜單、選擇圖形功能等。1、鍵盤2、鼠標(biāo)第7頁(yè),共88頁(yè),2023年,2月20日,星期一光筆是一種檢測(cè)裝置,是“能檢測(cè)出光的筆”。它靠檢測(cè)熒光屏上的發(fā)光點(diǎn)來選擇屏幕的位置坐標(biāo)。3、光筆(LigtPen)光筆的基本功能:定位、拾取和筆劃跟蹤。拾取是選中顯示器上已顯示的圖形或文字。筆劃跟蹤是用光筆拖動(dòng)光標(biāo)實(shí)現(xiàn)定位第8頁(yè),共88頁(yè),2023年,2月20日,星期一①游戲桿:是有一根手柄的可搖動(dòng)裝置。手柄通過一個(gè)球形軸承半固定在底座上,在手柄運(yùn)動(dòng)時(shí)帶動(dòng)一對(duì)電位器或電脈沖產(chǎn)生器產(chǎn)生信號(hào),控制屏幕上的光標(biāo)的運(yùn)動(dòng)。②跟蹤球:跟蹤球是一個(gè)球,可用手掌或掌心旋轉(zhuǎn)使屏幕光標(biāo)移動(dòng)。附加的電位計(jì)量器用來測(cè)量球的旋轉(zhuǎn)量和方向。4、游戲桿(JoyStick)和跟蹤球第9頁(yè),共88頁(yè),2023年,2月20日,星期一觸摸屏是允許用手指觸摸的方式選擇顯示屏幕位置的顯示器。根據(jù)觸點(diǎn)記錄方式將觸摸屏分為光學(xué)的、電子的和聲學(xué)。5、觸摸屏(TouchScreen)第10頁(yè),共88頁(yè),2023年,2月20日,星期一2.2.2特殊應(yīng)用圖形輸入設(shè)備特殊應(yīng)用圖形輸入設(shè)備是指那些用于專門目的的圖形輸入專門設(shè)備。這里僅介紹數(shù)字化儀、圖象掃描儀、數(shù)碼相機(jī)。第11頁(yè),共88頁(yè),2023年,2月20日,星期一又稱繪圖板,是用來給物體作畫、著色或交互選擇坐標(biāo)位置的常用設(shè)備。這些設(shè)備可輸入兩維或三維空間的坐標(biāo)。通常,數(shù)字化儀在所繪制的圖或?qū)ο笊蠏呙?,并輸入一組隨機(jī)的坐標(biāo)位置,相互之間以直線段連接,以逼近曲線或表面形狀。標(biāo)準(zhǔn)的數(shù)字化儀有兩個(gè)主要部分:(1)堅(jiān)固的、內(nèi)部布滿金屬柵格的圖板;(2)提供位置信息的定位器。1、數(shù)字化儀(Digitizer)第12頁(yè),共88頁(yè),2023年,2月20日,星期一掃描儀是一種圖像輸入設(shè)備,是直接把圖形(工程圖紙)和圖像(照片、廣告等)掃描輸入到計(jì)算機(jī)中并以圖像形式存儲(chǔ)表示的設(shè)備。按掃描儀所支持的顏色可分為單色掃描儀和彩色掃描儀;按其所采用的固態(tài)器件又可分為電荷耦合器件(CCD)掃描儀、MOS電路掃描儀和緊貼型掃描儀;按掃描寬度和操作方式可以分為大型掃描儀、臺(tái)式掃描儀和手持式掃描儀。掃描儀的兩個(gè)重要指標(biāo)是分辨率和支持的顏色數(shù)或灰度等級(jí),如分辨率為1200dpi(dotsperinch),顏色為32位真彩色?,F(xiàn)在大多掃描儀都提供分辨率和顏色、灰度的選擇功能。2、圖象掃描儀(ImageScanner)第13頁(yè),共88頁(yè),2023年,2月20日,星期一數(shù)碼相機(jī)是專門用來獲取數(shù)字化圖像的照相機(jī)。雖然它從外觀上看很像一架普通的光學(xué)照相機(jī),但內(nèi)部結(jié)構(gòu)卻大不相同。數(shù)碼相機(jī)利用電耦合器件成像,圖像存儲(chǔ)在半導(dǎo)體器件上。數(shù)碼相機(jī)作為計(jì)算機(jī)的輸入設(shè)備,將存儲(chǔ)在半導(dǎo)體器件上的圖像輸入到計(jì)算機(jī)中,并利用相應(yīng)的軟件進(jìn)行編輯處理,可用彩色打印機(jī)打印輸出。3、數(shù)碼相機(jī)(DigitalCamera)第14頁(yè),共88頁(yè),2023年,2月20日,星期一2.3圖形繪制設(shè)備圖形輸出包括圖形顯示和圖形繪制。圖形繪制通常指把圖形畫在紙上,也稱硬拷貝。繪圖儀和打印機(jī)是兩種最常用的硬拷貝設(shè)備。第15頁(yè),共88頁(yè),2023年,2月20日,星期一2.3.1繪圖儀繪圖儀分筆式繪圖儀和噴墨式繪圖儀兩種。噴墨式繪圖儀的工作原理是利用電脈沖控制噴墨頭,由噴墨頭上的噴嘴把墨滴噴到圖紙上而形成圖形。筆式繪圖儀又分為滾筒式繪圖儀和平板式繪圖儀兩種。滾筒式繪圖儀是把有孔的繪圖紙卷在有突針的滾筒上,機(jī)架靜止,筆在托架上運(yùn)動(dòng),繪圖紙?jiān)跐L輪上沿托架前后移動(dòng),從而繪制出圖形。繪圖紙和繪圖工具筆的運(yùn)動(dòng)是由兩只步進(jìn)電機(jī)帶動(dòng),通過控制兩只步進(jìn)電機(jī)進(jìn)行繪圖。繪圖工具可以是筆,也可以是彩色噴墨頭。滾筒式繪圖儀一般結(jié)構(gòu)較簡(jiǎn)單、價(jià)格較低,但精度和速度不高。平板式繪圖儀有一塊繪圖平板,圖紙平鋪在繪圖平板上,橫梁和筆架運(yùn)動(dòng)。這種繪圖儀精度高、速度快、但價(jià)格也較高。繪圖筆的運(yùn)動(dòng)有六種基本動(dòng)作:+X、-X、+Y、-Y四個(gè)方向上的移動(dòng)和抬筆、落筆。因此,任何繪圖路線都只能由這四個(gè)方向的基本運(yùn)動(dòng)組成。第16頁(yè),共88頁(yè),2023年,2月20日,星期一2.3.2打印機(jī)打印機(jī)可用來輸出文本、數(shù)據(jù)和圖形。目前常用的打印機(jī)主要有針式打印機(jī)、噴墨打印機(jī)和激光打印機(jī)。第17頁(yè),共88頁(yè),2023年,2月20日,星期一1、針式打印機(jī)針式打印機(jī)的打印機(jī)頭上裝有一組打印鋼針,在打印機(jī)和打印頭之間裝有色帶,通過選擇打出的某些鋼針撞擊色帶和紙將點(diǎn)陣圖案印在紙上。打印時(shí)打印頭從左至右移動(dòng)來打印一行,當(dāng)打完一行后打印紙以一定的行距向前移動(dòng),以便打印下一行。這種打印機(jī)因機(jī)器本身和耗材的價(jià)格便宜而被普遍使用,但作為圖形輸出設(shè)備時(shí)因其輸出精度太低致使圖形質(zhì)量很差。第18頁(yè),共88頁(yè),2023年,2月20日,星期一2、噴墨打印機(jī)噴墨打印機(jī)的基本原理是通過噴墨頭在打印紙上橫向移動(dòng)時(shí)將小墨點(diǎn)噴射到打印紙上來形成圖案的。墨水泵將黃、品紅、青3種顏色的墨水分別注入3支很細(xì)的噴筆中,在高壓下,墨水通過噴筆內(nèi)細(xì)而長(zhǎng)的玻璃毛細(xì)管噴到紙上。噴墨打印機(jī)因其價(jià)格較激光打印機(jī)便宜,使用彩色墨盒的彩噴可打印彩色圖形,所以是較理想的圖形打印設(shè)備,但速度較慢且耗財(cái)昂貴。第19頁(yè),共88頁(yè),2023年,2月20日,星期一3、激光打印機(jī)激光打印機(jī)的基本原理:用激光束在光敏鼓上掃描,通過控制激光束的開關(guān)來控制光敏鼓是否吸附碳粉。當(dāng)光敏鼓在紙上滾動(dòng)時(shí),便能在紙上輸出圖形等信息。激光打印機(jī)有效地利用了激光的定向性、單色性和能量密集性,結(jié)合電子掃描技術(shù)的高靈敏度和快速存取等特性,使輸出圖形圖像的質(zhì)量非常高,是理想的圖形輸出設(shè)備。激光打印機(jī)正朝著高速度、高精度、低噪音、彩色化的方向發(fā)展。第20頁(yè),共88頁(yè),2023年,2月20日,星期一2.4圖形顯示系統(tǒng)圖形顯示指的是在顯示器屏幕上輸出圖形,顯示器通過顯示卡接到系統(tǒng)總線上,顯示器和顯示卡共同構(gòu)成了顯示系統(tǒng)。第21頁(yè),共88頁(yè),2023年,2月20日,星期一2.4.1顯示器顯示器是顯示圖形的設(shè)備。根據(jù)顯示器外形可將其分為兩種類型:陰極射線管式(CRT)顯示器和平板顯示器(液晶顯示器、等離子顯示器、激光顯示器等)。在應(yīng)用中,以前是以CRT顯示器為主;目前,由于液晶顯示器價(jià)格的大幅降低,使用日漸增多,大有取代CRT顯示器的趨勢(shì)。第22頁(yè),共88頁(yè),2023年,2月20日,星期一1、陰極射線管(CRT)陰極射線管(CRT,CathodeRayTube)是CRT顯示器的主要組成部分。根據(jù)陰極射線管的可顯示顏色數(shù)可分為單色陰極射線管和彩色陰極射線管兩種。第23頁(yè),共88頁(yè),2023年,2月20日,星期一(1)單色陰極射線管CRT是一種真空器件,利用電磁場(chǎng)產(chǎn)生高速的、經(jīng)過聚焦的電子束,偏轉(zhuǎn)到屏幕的不同位置轟擊屏幕表面的熒光材料而產(chǎn)生可見圖形。第24頁(yè),共88頁(yè),2023年,2月20日,星期一陰極射線管的各組成部分及其功能:電燈絲:通電后變熱以給陰極加熱。陰極:由燈絲加熱后釋放自由電子,在其周圍形成電子云??刂茤牛杭由县?fù)電壓后,能夠控制通過其中小孔的帶負(fù)電的電子束的強(qiáng)弱。通過調(diào)節(jié)負(fù)電壓高低來控制電子數(shù)量,來控制熒光屏上相應(yīng)點(diǎn)的亮度。聚焦系統(tǒng):保證電子束在轟擊屏幕時(shí),匯聚成很細(xì)的點(diǎn)。加速電極:對(duì)電子束加速,用于產(chǎn)生高速電子束。偏轉(zhuǎn)系統(tǒng):控制電子束的偏轉(zhuǎn)路徑,以轟擊屏幕的特定位置。屏幕:內(nèi)壁涂有熒光粉,常稱作熒光屏,是CRT顯示圖形的表面。第25頁(yè),共88頁(yè),2023年,2月20日,星期一(2)彩色陰極射線管如果顯示屏上只涂一種熒光粉,則只能發(fā)出一種光色,這種顯示器稱作單色顯示器,色彩單調(diào)。彩色顯示器利用能發(fā)出不同光色的熒光粉的光色組合來顯示彩色圖形。最常用的CRT彩色顯示器采用的是蔭罩式彩色顯像管。第26頁(yè),共88頁(yè),2023年,2月20日,星期一根據(jù)影孔板孔的形狀可將影孔板分為三類:①點(diǎn)狀影孔板:大多數(shù)球面與柱面顯像管采用此類影孔板。由于太多電子無法穿過蔭罩孔而直接打在蔭罩上,導(dǎo)致長(zhǎng)時(shí)間工作后,蔭罩容易出現(xiàn)過熱導(dǎo)致變形,影響屏幕的局部色純。但其抗震性好。②柵格式影孔板:這種并行排列的方式容易對(duì)齊,調(diào)出的顏色也較鮮艷,常用于高分辨率的彩色CRT顯示器。如,Sony的Trinitron與Mitsubishi的Diamondtron顯像管采用此類影孔板。③溝槽式影孔板:長(zhǎng)形板孔在保證蔭罩強(qiáng)度的前提下,提高了電子透過率。LG的Flatron顯像管采用此類影孔板。(a)點(diǎn)狀影孔板(b)柵格式影孔板(c)溝槽式影孔板第27頁(yè),共88頁(yè),2023年,2月20日,星期一2、CRT圖形顯示器按其掃描方式,CRT顯示器可分為隨機(jī)掃描顯示器(又稱矢量顯示器)、直視存儲(chǔ)管圖形顯示器和光柵掃描式顯示器三種。它們的原理不同,可顯示的圖形種類不同,因此用途也不同。第28頁(yè),共88頁(yè),2023年,2月20日,星期一(1)隨機(jī)掃描的圖形顯示器隨機(jī)掃描圖形顯示器,又稱向量(vector)顯示器、筆劃(Strokewriting)顯示器,是畫線設(shè)備,其特點(diǎn)是電子束可隨意移動(dòng),只掃描熒屏上要顯示的部分。優(yōu)點(diǎn):掃描速度快,分辨率高,線條質(zhì)量好,易修改,交互性好,動(dòng)態(tài)性能好。缺點(diǎn):價(jià)格貴;只能顯示線框圖形,并不能顯示逼真的有陰影場(chǎng)景。應(yīng)用領(lǐng)域:主要應(yīng)用于軍事、CAD領(lǐng)域。第29頁(yè),共88頁(yè),2023年,2月20日,星期一(2)直視存儲(chǔ)管圖形顯示器直視存儲(chǔ)管DVST(direct-viewstoragetube)通過緊貼在屏幕熒光層后的電荷分布(存儲(chǔ)柵)來存儲(chǔ)圖形信息。從表面上看直視存儲(chǔ)管的特性極象一個(gè)有長(zhǎng)余輝的熒光屏,一條線一旦畫在屏幕上,在一小時(shí)之內(nèi)都將是可見的。

DVST的特點(diǎn)有:無需刷新,很復(fù)雜的圖形也可以在極高的分辨率下無閃爍地顯示,成本較低;不能顯示彩色,不能局部修改,擦除和重畫過程對(duì)復(fù)雜圖形來講可能需要幾秒鐘。第30頁(yè),共88頁(yè),2023年,2月20日,星期一(3)光柵掃描式顯示器目前使用最廣泛的CRT顯示器是基于電視技術(shù)的光柵掃描式顯示器。在光柵掃描系統(tǒng)中,電子束橫向掃描屏幕,一次一行,從頂?shù)降醉槾芜M(jìn)行。當(dāng)電子束橫向沿一行移動(dòng)時(shí),電子束的強(qiáng)度不斷變化來建立亮點(diǎn)的圖案。第31頁(yè),共88頁(yè),2023年,2月20日,星期一關(guān)于光柵掃描的幾個(gè)概念如下:幀:電子束從左到右、自頂至底掃描一遍,對(duì)應(yīng)于一幀。水平回掃:每條掃描線末端,電子束返回到屏幕的左端,稱為電子束的水平回掃。回掃時(shí)關(guān)閉電子槍。垂直回掃:在每幀的終了,電子束返回到屏幕的左上角,稱為電子束的垂直回掃?;貟邥r(shí)關(guān)閉電子槍。行頻、幀頻:水平掃描頻率為行頻,垂直掃描頻率為幀頻。掃描方式:有逐行掃描和隔行掃描。逐行掃描是從屏幕頂端開始,逐行下掃,直到屏幕底部。隔行掃描是先掃偶數(shù)行掃描線,再掃奇數(shù)行掃描線。隔行掃描技術(shù)主要用于刷新速率較慢的顯示器中,以避免閃爍。刷新速率:以多少周期/秒或赫茲/秒為單位來描述。一個(gè)周期對(duì)應(yīng)一幀。如每秒60幀的刷新速率為60Hz/s。采用一定速率的刷新來保持屏幕顯示的圖形穩(wěn)定。第32頁(yè),共88頁(yè),2023年,2月20日,星期一3、液晶顯示器LCD(LiquidCrystalDisplay)由于CRT顯示器體積大、重量重、耗電量高、產(chǎn)生輻射與電磁波干擾等缺點(diǎn),而液晶顯示器能克服這些不足,應(yīng)用日益廣泛,前景十分廣闊。液晶顯示器是基于液晶電光效應(yīng)的顯示器件。液晶是一種介于液體和固體之間的具有規(guī)則性分子排列的有機(jī)化合物,分子形狀為細(xì)長(zhǎng)棒形,長(zhǎng)寬約1nm~10nm。在不同電流電場(chǎng)作用下,液晶分子會(huì)做規(guī)則旋轉(zhuǎn)90度排列,產(chǎn)生透光度的差別,如此在電源ON/OFF下產(chǎn)生明暗的區(qū)別。依此原理控制每個(gè)像素,便可構(gòu)成所需圖像。第33頁(yè),共88頁(yè),2023年,2月20日,星期一液晶顯示器由六層薄板組成:第一層是垂直偏光板,第二層是鍍?cè)谑⑵矫嫔系拇怪本W(wǎng)格線板,第三層是液晶層,第四層是水平網(wǎng)格線板,第五層是水平偏光板,第六層是反射層。在不加電場(chǎng)的情況下,入射光經(jīng)過偏光板后通過液晶層,偏光被分子扭轉(zhuǎn)排列的液晶層旋轉(zhuǎn)90度。在離開液晶層時(shí),其偏光方向恰與另一偏光板的方向一致,所以光線能順利通過,使電極面呈光亮。當(dāng)加入電場(chǎng)的情況時(shí),每個(gè)液晶分子的光軸轉(zhuǎn)向與電場(chǎng)方向一致。液晶層也因此失去了旋光的能力,結(jié)果來自入射偏光板的偏光,其方向與另一偏光板的偏光方向成垂直的關(guān)系,并無法通過,這樣電極面就呈現(xiàn)黑暗的狀態(tài)。液晶層中的水晶液滴都被包含在細(xì)小的單元格結(jié)構(gòu)中,一個(gè)或多個(gè)單元格構(gòu)成屏幕上的一個(gè)像素。顯示圖像時(shí),通過對(duì)顯示信號(hào)的AD轉(zhuǎn)換,計(jì)算出各像素的通斷狀態(tài)后,直接把信號(hào)驅(qū)動(dòng)具體像素,控制該液晶像素對(duì)光線的"通斷",就可以在屏幕上生成圖像。反射層水平偏光板水平網(wǎng)格線液晶層垂直網(wǎng)格線垂直偏光板圖2.18液晶顯示器的六層結(jié)構(gòu)第34頁(yè),共88頁(yè),2023年,2月20日,星期一液晶顯示器具有如下優(yōu)點(diǎn):①體積小,重量輕;②功耗低(數(shù)十uW/cm

以下),散熱??;③精確還原畫面,文字銳利;④畫面不閃爍;⑤幅射小;⑥屏幕調(diào)節(jié)簡(jiǎn)單方便。目前,LCD顯示器圖像質(zhì)量還不夠完善,色彩表現(xiàn)和飽和度不及CRT顯示器,而且響應(yīng)時(shí)間也比CRT顯示器長(zhǎng),當(dāng)畫面更新速度快而劇烈時(shí),畫面延遲會(huì)產(chǎn)生重影、脫尾等現(xiàn)象。第35頁(yè),共88頁(yè),2023年,2月20日,星期一2.4.2相關(guān)概念(1)分辨率(2)象素與幀緩存(3)顏色查找表(4)屏幕坐標(biāo)系第36頁(yè),共88頁(yè),2023年,2月20日,星期一(1)分辨率(Resolution)光點(diǎn)是指電子束打在顯示器的熒光屏上能夠顯示的最小發(fā)光點(diǎn),一般用直徑來表明光點(diǎn)的大小。在當(dāng)前的圖形顯示模式下,屏幕上可以控制的可顯示的最小單元,被稱作像素點(diǎn)

(pixel),它是組成圖形的基本元素。圖形顯示系統(tǒng)中的三種分辨率概念:①屏幕分辨率,也稱為光柵分辨率或物理分辨率,是指CRT顯示器顯示系統(tǒng)能夠顯示的最大光點(diǎn)數(shù),通常用水平方向上的光點(diǎn)數(shù)與垂直方向上的光點(diǎn)數(shù)的乘積來表示。②顯示分辨率:是顯示控制器所能提供的顯示模式分辨率。顯示系統(tǒng)的顯示模式分為文本模式和圖形模式。對(duì)于文本顯示方式,顯示分辨率用水平和垂直方向上所能顯示的字符總數(shù)的乘積表示。對(duì)于圖形顯示方式,顯示分辨率是指屏幕上所包含像素的個(gè)數(shù),通常用水平和垂直方向上所能顯示的象素點(diǎn)總數(shù)的乘積表示。③存儲(chǔ)分辨率:是指幀緩沖區(qū)的大小,一般用緩沖區(qū)的字節(jié)數(shù)表示。存儲(chǔ)分辨率不僅與顯示分辨率有關(guān),還與象素點(diǎn)的色彩有關(guān)。幀緩存的容量等于顯示分辨率乘上每個(gè)像素對(duì)應(yīng)的字節(jié)數(shù)。三種分辨率的概念既有區(qū)別又有聯(lián)系,對(duì)圖形的顯示都會(huì)產(chǎn)生一定的影響。屏幕分辨率決定了所能顯示的最高分辨率;顯示分辨率和存儲(chǔ)分辨率對(duì)所能顯示的圖形也有控制作用。第37頁(yè),共88頁(yè),2023年,2月20日,星期一(2)象素與幀緩存屏幕上一個(gè)象素點(diǎn)具有顏色、灰度等屬性,它們存儲(chǔ)在幀緩存中,所以,象素點(diǎn)對(duì)應(yīng)幀緩存中的一組信息,其對(duì)應(yīng)技術(shù)有組合象素法(PackedPixelMethod)和顏色位面法(ColorPlaneMethod)。幀緩沖存儲(chǔ)器CRT光柵電子槍寄存器1DAC第38頁(yè),共88頁(yè),2023年,2月20日,星期一第39頁(yè),共88頁(yè),2023年,2月20日,星期一當(dāng)屏幕分辨率為1024×1024,每個(gè)象素24位(以真彩色顯示)時(shí),幀緩存的容量需要:1024×1024×24/8=3M字節(jié)第40頁(yè),共88頁(yè),2023年,2月20日,星期一(3)顏色查找表第41頁(yè),共88頁(yè),2023年,2月20日,星期一(4)屏幕坐標(biāo)系屏幕是顯示圖形的場(chǎng)所,為了進(jìn)行定位,在屏幕上定義了一個(gè)屏幕坐標(biāo)系。它給出了第一象限的一個(gè)平面區(qū)域0≤x≤Xmax,0≤y≤Ymax(分辨率為(Xmax+1)*(Ymax+1))。坐標(biāo)值是正整數(shù),一對(duì)(X,Y)坐標(biāo)對(duì)應(yīng)一個(gè)像素點(diǎn)。注意有些顯示器的屏幕坐標(biāo)系的Y軸方向向上而有的向下。圖2.23兩種屏幕坐標(biāo)系第42頁(yè),共88頁(yè),2023年,2月20日,星期一2.5圖形軟件標(biāo)準(zhǔn)圖形標(biāo)準(zhǔn)是指系統(tǒng)中各界面之間進(jìn)行數(shù)據(jù)交換的接口標(biāo)準(zhǔn)、語言連接規(guī)范和應(yīng)用程序接口API標(biāo)準(zhǔn)等。圖形標(biāo)準(zhǔn)的制定是為了在不同的計(jì)算機(jī)系統(tǒng)和圖形設(shè)備之間進(jìn)行圖形應(yīng)用軟件的移植。隨著計(jì)算機(jī)圖形學(xué)應(yīng)用領(lǐng)域的不斷擴(kuò)大,各種圖形軟件日益增多,圖形輸入輸出設(shè)備也是種類繁多。如果沒有一些軟件標(biāo)準(zhǔn),對(duì)應(yīng)用軟件的開發(fā)和移植等工作將造成困難。20世紀(jì)50年代到70年代初,人們要求圖形軟件想著通用、高級(jí)、與設(shè)備無關(guān)的方向發(fā)展,導(dǎo)致了計(jì)算機(jī)圖形標(biāo)準(zhǔn)的出現(xiàn)。圖形標(biāo)準(zhǔn)的研究和制定于20世紀(jì)70年代初開始,在80年代進(jìn)入了大發(fā)展時(shí)期。1985年,第一個(gè)國(guó)際計(jì)算機(jī)圖形信息標(biāo)準(zhǔn)及計(jì)算機(jī)圖形核心系統(tǒng)(GKS)正式頒布。之后,三維圖形核心系統(tǒng)(GKS-3D)、程序員層次交互式圖形系統(tǒng)(PHIGS)、計(jì)算機(jī)圖形原文件(CGM)、計(jì)算機(jī)圖形接口(CGI)、初始圖形交換規(guī)范(IGES)以及產(chǎn)品數(shù)據(jù)交換標(biāo)準(zhǔn)(STEP)等相繼制訂并頒布。除了由官方標(biāo)準(zhǔn)化組織發(fā)布的圖形標(biāo)準(zhǔn)外,還有一些被工業(yè)界使用的已經(jīng)成為事實(shí)上的標(biāo)準(zhǔn),比較著名的有SGI等公司的OpenGL,微軟公司的DirectX等。計(jì)算機(jī)圖形標(biāo)準(zhǔn)的研究和發(fā)展,進(jìn)一步推動(dòng)了計(jì)算機(jī)圖形學(xué)及其應(yīng)用技術(shù)的發(fā)展。本節(jié)將介紹GKS標(biāo)準(zhǔn)、CGM標(biāo)準(zhǔn)、CGI標(biāo)準(zhǔn)、IGES標(biāo)準(zhǔn)、DXF標(biāo)準(zhǔn)、STEP標(biāo)準(zhǔn)、OpenGL標(biāo)準(zhǔn)。第43頁(yè),共88頁(yè),2023年,2月20日,星期一1、GKS標(biāo)準(zhǔn)圖形核心系統(tǒng)GKS(GraphicalKernelSystem)是由德國(guó)工業(yè)標(biāo)準(zhǔn)化組織協(xié)會(huì)提出的并被許多國(guó)家采納、引用的第一個(gè)圖形軟件國(guó)際標(biāo)準(zhǔn)。它是一個(gè)子程序軟件包,提供了各種物理的圖形輸入輸出設(shè)備和應(yīng)用軟件之間的接口。用戶通過應(yīng)用程序調(diào)用GKS的功能子程序便可方便的進(jìn)行圖形的輸入、輸出、變換、組合、裝配等交互設(shè)計(jì)操作。GKS獨(dú)立與設(shè)備和高級(jí)語言。它免除了繪圖設(shè)計(jì)和顯示指令的繁瑣工作,也不需要詳細(xì)了解各種圖形的輸入輸出設(shè)備的控制功能,減輕了設(shè)計(jì)人員的許多重復(fù)性工作。由于GKS使應(yīng)用軟件只與抽象的邏輯設(shè)備打交道,略去了物理設(shè)備的個(gè)性,為應(yīng)用軟件的移植提供了極大的方便,從而使開發(fā)的軟件具有了設(shè)備無關(guān)性。為便于應(yīng)用,GKS提供了與各種流行高級(jí)語言的接口,并作為獨(dú)立于高級(jí)語言的通用軟件為開發(fā)各種應(yīng)用圖形軟件服務(wù)。GKS是針對(duì)二維圖形應(yīng)用的,為滿足三維圖形應(yīng)用的需求,在此基礎(chǔ)上又制定了GKS-3D。GKS-3D具有三維圖素、填充區(qū)域圖素集、具有視圖操作的三維變換、三維輸入、消隱處理、邊界屬性和三維幾何屬性等功能。GKS-3D是一個(gè)完全的三維圖形系統(tǒng),并與GKS(2D)兼容。GKS的應(yīng)用領(lǐng)域十分廣泛,包括科學(xué)技術(shù)和商業(yè)圖形的生成、支持地圖學(xué)、過程控制和CAX等領(lǐng)域的應(yīng)用。第44頁(yè),共88頁(yè),2023年,2月20日,星期一2、CGM標(biāo)準(zhǔn)計(jì)算機(jī)圖形元文件CGM(ComputerGraphicMetafile)規(guī)定了生成與設(shè)備無關(guān)的圖形定義、存取和傳遞圖形數(shù)據(jù)的格式。它提供了把不同圖形系統(tǒng)所產(chǎn)生的圖形集成到一起的一種手段,適用于各種設(shè)備和應(yīng)用程序。CGM標(biāo)準(zhǔn)是由一套標(biāo)準(zhǔn)的與設(shè)備無關(guān)的定義圖形的語法和詞法元素組成。它分為兩部分,第一部分是功能描述,包括元素標(biāo)志符、語義的說明及參數(shù)描述,以抽象的詞法描述了相應(yīng)的文件格式;第二部分描述了3種標(biāo)準(zhǔn)元文件編碼形式,即字符、二進(jìn)制數(shù)和正文編碼。CGM標(biāo)準(zhǔn)元文件本身并不提供元文件生成和解釋的具體方法,而利用上述三種不同的標(biāo)準(zhǔn)數(shù)據(jù)編碼形式來實(shí)現(xiàn)元文件的元素功能。第45頁(yè),共88頁(yè),2023年,2月20日,星期一

3、CGI標(biāo)準(zhǔn)計(jì)算機(jī)圖形接口CGI(ComputerGraphicsInterface)是ISOTC97組提出的圖形設(shè)備標(biāo)準(zhǔn)。CGI是第一個(gè)針對(duì)圖形設(shè)備接口,而不是應(yīng)用程序接口的交互式計(jì)算機(jī)圖形標(biāo)準(zhǔn)。CGI的目標(biāo)是使應(yīng)用程序和圖形庫(kù)直接與各種不同的圖形設(shè)備相作用,使其在各種圖形設(shè)備上不經(jīng)修改就可以運(yùn)行,即在用戶程序和虛擬設(shè)備之間以一種獨(dú)立于設(shè)備的方式提供圖形信息的描述和通信。CGI規(guī)定了發(fā)送圖形數(shù)據(jù)到設(shè)備的輸出和控制功能,從圖形設(shè)備接收?qǐng)D形數(shù)據(jù)的輸入、查詢和控制功能,因CGI是設(shè)備級(jí)接口,對(duì)出錯(cuò)處理和調(diào)試只提供了最小支持。CGI提供的功能集包括控制功能集、獨(dú)立于設(shè)備的圖形對(duì)象輸出功能集、圖段功能集、輸入和應(yīng)答功能集以及產(chǎn)生、修改、檢索和顯示以象素?cái)?shù)據(jù)形式存儲(chǔ)的光柵功能集。在二維圖形設(shè)備中可以找到CGI支持的功能,但沒有一個(gè)圖形設(shè)備包含由CGI定義的所有功能,從這個(gè)意義上說,CGI定義了與虛擬設(shè)備的接口。第46頁(yè),共88頁(yè),2023年,2月20日,星期一4、IGES標(biāo)準(zhǔn)基本圖形交換規(guī)范IGES(InitialGraphicsExchangeSpecification)是CAD/CAM應(yīng)用最廣泛的數(shù)據(jù)交換標(biāo)準(zhǔn)。它于1980年由美國(guó)國(guó)家標(biāo)準(zhǔn)局(NBS)主持成立由波音公司和通用電氣公司參加的技術(shù)委員會(huì)制訂,并于1981年正式成為美國(guó)的國(guó)家標(biāo)準(zhǔn)。它適用于CAD/CAM系統(tǒng)間或同一CAD/CAM系統(tǒng)內(nèi)部不同模塊間的圖形信息交換。IGES文件由五或六個(gè)段組成:標(biāo)志(flag)段、開始(start)段、全局(global)段、元素索引(directoryentry)段、參數(shù)數(shù)據(jù)(paramterdata)段、結(jié)束(terminate)段組成。其中,標(biāo)志段僅出現(xiàn)在二進(jìn)制或壓縮的ASCII文件格式中。在IGES文件中表示信息的基本單位是元素,IGES定義了五類元素:曲線和曲面幾何元素、構(gòu)造實(shí)體幾何CSG元素、邊界B-Rep實(shí)體元素、標(biāo)注元素和結(jié)構(gòu)元素。各商用CAD系統(tǒng)幾乎都提供了IGES文件前、后置處理程序,實(shí)現(xiàn)將傳送來的數(shù)據(jù)格式轉(zhuǎn)換為IGES文件格式,把IGES文件格式轉(zhuǎn)換為CAD系統(tǒng)內(nèi)部的數(shù)據(jù)格式。第47頁(yè),共88頁(yè),2023年,2月20日,星期一5、DXF標(biāo)準(zhǔn)數(shù)據(jù)交換格式DXF(DrawingExchangeFile)是Autodesk公司首先用于描述AutoCAD圖形的文件。每個(gè)CAD系統(tǒng)都有自己的數(shù)據(jù)文件,數(shù)據(jù)文件分圖形數(shù)據(jù)文件、幾何模型文件和產(chǎn)品模型文件幾種。數(shù)據(jù)文件的格式與每個(gè)CAD系統(tǒng)自己的內(nèi)部數(shù)據(jù)模式密切相關(guān),而每個(gè)CAD系統(tǒng)自己內(nèi)部的數(shù)據(jù)模式一般是不公開的,也是各不相同的。由于用戶使用的需要,就有數(shù)據(jù)交換文件概念的出現(xiàn)。一個(gè)完整的DXF文件是由四個(gè)段和一個(gè)文件結(jié)尾組成的。其順序如下:(1)標(biāo)題段,記錄AutoCAD系統(tǒng)的所有標(biāo)題變量的當(dāng)前值或當(dāng)前狀態(tài)。這些標(biāo)題變量記錄了AutoCAD系統(tǒng)的當(dāng)前工作環(huán)境。例如,AutoCAD版本號(hào)、插入基點(diǎn)、繪圖界限、SNAP捕捉的當(dāng)前狀態(tài)、柵格間距、式樣、當(dāng)前圖層名、當(dāng)前線型和當(dāng)前顏色等;(2)表段,包含了四個(gè)表,每個(gè)表又包含可變數(shù)目的表項(xiàng)。按照這些表在文件中出現(xiàn)的順序,它們依次為線型表、圖層表、字樣表和視圖表;(3)塊段,記錄定義每一塊時(shí)的塊名、當(dāng)前圖層名、塊的種類、塊的插入基點(diǎn)及組成該塊的所有成員。塊的種類分為圖形塊、帶有屬性的塊和無名塊三種。無名塊包括用HATCH命令生成的剖面線和用DIM命令完成的尺寸標(biāo)注;(4)元素段,記錄了每個(gè)幾何元素的名稱、所在圖層的名稱、線型名、顏色號(hào)、基面高度、厚度以及有關(guān)幾何數(shù)據(jù);(5)文件結(jié)束,標(biāo)識(shí)文件結(jié)束。DXF為AutoCAD系統(tǒng)的圖形數(shù)據(jù)文件,是具有專門格式的ASCII碼文本文件。AutoCAD可以用DXFFOUT命令生成它,也或以用DXFIN命令讀入它,許多CAD系統(tǒng)具有輸入和輸出該文件的功能。DXF雖然不是標(biāo)準(zhǔn),但已成為事實(shí)上的數(shù)據(jù)交換標(biāo)準(zhǔn)。第48頁(yè),共88頁(yè),2023年,2月20日,星期一6、產(chǎn)品數(shù)據(jù)表達(dá)與交換標(biāo)準(zhǔn)STEP產(chǎn)品數(shù)據(jù)表達(dá)與交換標(biāo)準(zhǔn)STEP(StandardforTheExchangeofProductmodeldata)是為了克服IGES存在的文件太長(zhǎng)及有些數(shù)據(jù)不能表達(dá)等問題而開發(fā)的,是一個(gè)關(guān)于產(chǎn)品數(shù)據(jù)計(jì)算機(jī)可理解的表示和交換的國(guó)際標(biāo)準(zhǔn),目的是提供一種不依賴于具體系統(tǒng)的中性機(jī)制,能夠描述產(chǎn)品整個(gè)生命周期中的產(chǎn)品數(shù)據(jù)。產(chǎn)品生命周期包括產(chǎn)品的設(shè)計(jì)、制造、使用、維護(hù)、報(bào)廢等。產(chǎn)品在各過程產(chǎn)生的信息既多又復(fù)雜,而且分散在不同的部門和地方。這就要求這些產(chǎn)品信息以計(jì)算機(jī)能理解的形式表示,而且在不同的計(jì)算機(jī)系統(tǒng)之間進(jìn)行交換時(shí)保持一致和完整。產(chǎn)品數(shù)據(jù)的表達(dá)和交換,構(gòu)成了STEP標(biāo)準(zhǔn),STEP把產(chǎn)品信息的表達(dá)和用于數(shù)據(jù)交換的實(shí)現(xiàn)方法區(qū)分開來。第49頁(yè),共88頁(yè),2023年,2月20日,星期一7、OpenGL標(biāo)準(zhǔn)OpenGL(OpenGrepgicsLibrary)是在SGI等多家世界聞名的計(jì)算機(jī)公司的倡導(dǎo)下制定的一個(gè)通用共享的開放式的三維圖形標(biāo)準(zhǔn)。它提供了一個(gè)標(biāo)準(zhǔn)的計(jì)算機(jī)圖形學(xué)所使用的數(shù)學(xué)模型到顯示的接口,并獨(dú)立于硬件設(shè)備和操作系統(tǒng)。以它為基礎(chǔ)開發(fā)的應(yīng)用程序,可以運(yùn)行于當(dāng)前各種流行的操作系統(tǒng)并可方便地在各平臺(tái)間移植。從個(gè)人機(jī)到工作站及超級(jí)計(jì)算機(jī),利用它都能實(shí)現(xiàn)高性能的三維圖形功能。由于OpenGL具有高度的可充用性和靈活性,它已經(jīng)成為高性能圖形和交互式視景處理的工業(yè)標(biāo)準(zhǔn),廣泛應(yīng)用于軍事、CAD/CAM/CAE、電視廣播、娛樂、藝術(shù)造型、醫(yī)療影像、虛擬世界等方面。OpenGL的核心庫(kù)包括一百多個(gè)用于三維圖形操作的函數(shù),除了提供基本的點(diǎn)、線和多邊形的繪制函數(shù)外,還提供了復(fù)雜的三維物體以及復(fù)雜曲線和曲面的繪制函數(shù),主要負(fù)責(zé)處理對(duì)象的外形描述、幾何變換和投影變換、繪制三維物體、光照和材質(zhì)設(shè)置、顏色模式設(shè)置、著色、位圖顯示與圖像增強(qiáng)、紋理映射、動(dòng)畫制作、交互操作等三維圖形圖像操作。第50頁(yè),共88頁(yè),2023年,2月20日,星期一2.6VisualC++的圖形程序開發(fā)方法Windows提供了豐富的內(nèi)部函數(shù),稱為API(ApplicationProgrammingInterface),其中的圖形設(shè)備接口GDI(GraphicsDeviceInterface)是用于處理圖形函數(shù)調(diào)用和驅(qū)動(dòng)繪圖設(shè)備的動(dòng)態(tài)鏈接庫(kù)。Windows應(yīng)用程序就是通過使用GDI進(jìn)行圖形編程的。為實(shí)現(xiàn)設(shè)備無關(guān)性,GDI定義了設(shè)備環(huán)境(又稱設(shè)備上下文)。用戶繪制屏幕時(shí)需通過設(shè)備環(huán)境DC間接實(shí)現(xiàn)。VisualC++的MFC封裝了許多與設(shè)備環(huán)境相關(guān)的類,通過這些類可使用戶很容易地對(duì)DC進(jìn)行處理。這些類不僅包含DC自身,而且還有字體、畫筆、畫刷等繪圖工具??傮w來說,圖形編程就是通過調(diào)用Windows自帶的GDI函數(shù)庫(kù)中的函數(shù)和對(duì)DC進(jìn)行操作,來完成繪制任務(wù)的。第51頁(yè),共88頁(yè),2023年,2月20日,星期一2.6.1圖形設(shè)備接口GDI

1、圖形設(shè)備接口GDIGDI接受Windows應(yīng)用程序的繪圖請(qǐng)求(表現(xiàn)為GDI函數(shù)調(diào)用),并將它們傳給相應(yīng)的設(shè)備驅(qū)動(dòng)程序,完成特定硬件的輸出,如打印機(jī)打印和屏幕顯示。GDI負(fù)責(zé)Windows的所有圖形輸出。Windows圖形編程主要是調(diào)用GDI中的相關(guān)函數(shù)并通過獲取DC的“狀態(tài)”,以確定圖形的顏色、尺寸等屬性。應(yīng)用程序使用GDI可創(chuàng)建三種類型的圖形輸出:矢量輸出、光柵圖形輸出和文本輸出。通過GDI可以實(shí)現(xiàn)對(duì)圖形的顏色、線條的粗細(xì)等屬性的控制。通過調(diào)用這些GDI函數(shù)操作硬件,可實(shí)現(xiàn)設(shè)備無關(guān)性。第52頁(yè),共88頁(yè),2023年,2月20日,星期一2、設(shè)備上下文DCWindows不允許直接操作顯示輸出設(shè)備,而是通過一個(gè)抽象層與設(shè)備上下文進(jìn)行通訊。設(shè)備上下文DC(DeviceContext,又稱設(shè)備環(huán)境,也稱設(shè)備描述表)實(shí)際上就是一個(gè)關(guān)于如何繪制圖形方法的集合,它不僅可以繪制各種圖形,而且還可以確定在應(yīng)用窗口中繪制圖形的方式,即確定繪圖模式和映射模式。DC的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)了顯示器(或打印機(jī))的性能、屬性之類的詳細(xì)信息,這些數(shù)據(jù)信息決定程序如何在顯示器上進(jìn)行顯示。在Windows環(huán)境下,所有圖形輸出都是在DC上進(jìn)行的。圖形和輸出類封裝了設(shè)備環(huán)境和繪圖工具,用來支持各種圖形設(shè)備環(huán)境。用戶在繪圖之前,必須獲取繪圖窗口區(qū)域的一個(gè)設(shè)備環(huán)境DC,然后才能進(jìn)行GDI函數(shù)的調(diào)用,以執(zhí)行適合于設(shè)備環(huán)境DC的命令。

另外,應(yīng)該注意的是,Windows的設(shè)備環(huán)境是GDI的關(guān)鍵元素,它代表了不同的物理設(shè)備。第53頁(yè),共88頁(yè),2023年,2月20日,星期一3、CDC類CDC是設(shè)備上下文的基類,包含了繪圖所需要的所有成員函數(shù)(包括部分虛函數(shù)).在MFC中,提出這些派生類的目的就是為了在不同的顯示設(shè)備上進(jìn)行顯示。第54頁(yè),共88頁(yè),2023年,2月20日,星期一函數(shù)說明Arc()繪制橢圓弧BitBlt()把位圖從一個(gè)DC拷貝到另一個(gè)DCDraw3dRect()繪制三維矩形DrawDragRect()繪制用鼠標(biāo)拖拽的矩形DrawEdge()繪制矩形的邊緣DrawIcan()繪制圖標(biāo)Ellipse()繪制橢圓FillRect()用給定畫刷的顏色填充矩形FillRgn()用給定畫刷的顏色填充區(qū)域GetBkColor()獲取背景顏色GetCurrentBitmap()獲取所選位圖的指針GetCurrentBrush()獲取所選畫刷的指針GetCurrentFront()獲取所選字體的指針GetCurrentPalette()獲取所選調(diào)色板的指針GetCurrentPen()獲取所選畫筆的指針GetCurrentPosition()獲取畫筆的當(dāng)前位置GetMapMode()獲取當(dāng)前設(shè)置映射模式GetPixel()獲取給定像素的RGB顏色值(1)CDC中常用的成員函數(shù)第55頁(yè),共88頁(yè),2023年,2月20日,星期一GetTextColor()獲取文本顏色GetTextExtent()獲取文本寬度和長(zhǎng)度GetWindow()獲取DC窗口的指針LineTo()繪制線條MoveTo()設(shè)置當(dāng)前畫筆的位置Pie()繪制餅圖Polygon()繪制多邊形Polyline()繪制一組線條RealizePalette()將邏輯調(diào)色板映射到系統(tǒng)調(diào)色板Rectangle()繪制矩形RoundRect()繪制圓角矩形SelectObject()選取GDI繪圖對(duì)象SelectStockObject()選取庫(kù)存(預(yù)定義)圖形對(duì)象SetBkColor()設(shè)置背景顏色對(duì)象SetMapMode()設(shè)置映射模式SetPixel()把像素設(shè)置成給定顏色SetTextColor()設(shè)置文本顏色StretchBlt()把位圖從一個(gè)DC拷貝到另一個(gè)DC,并根據(jù)需要擴(kuò)充或壓縮位圖TextOut()繪制文本串第56頁(yè),共88頁(yè),2023年,2月20日,星期一(2)CDC類的派生類派生類名稱說明CClientDC提供對(duì)窗口客戶區(qū)域的圖形訪問。在窗口中畫圖時(shí)可使用此類DC,但WM_PAINTWindows消息除外。CMetaFileDC代表Windows圖元文件,它包含一系列命令已重新產(chǎn)生圖形。想要?jiǎng)?chuàng)建獨(dú)立于設(shè)備的文件時(shí)可使用此類DC,用戶可以回放這種文件來創(chuàng)建圖像。CPaintDC創(chuàng)建響應(yīng)WM_PAINTWindows消息,通常在MFC應(yīng)用程序的OnPaint()函數(shù)中使用。CWindowDC可以提供在整個(gè)窗口(包括客戶區(qū)和非客戶區(qū))中畫圖的設(shè)備環(huán)境。第57頁(yè),共88頁(yè),2023年,2月20日,星期一(3)CDC類的調(diào)用函數(shù)與設(shè)備環(huán)境有關(guān)的常用函數(shù):

①GetDC()函數(shù):用于獲取指定窗口的客戶區(qū)的顯示器設(shè)備環(huán)境原型聲明如下:CDC*CWnd::GetDC();②ReleaseDC()函數(shù):用于釋放由調(diào)用GetDC或GetWindowDC函數(shù)獲取的指定設(shè)備環(huán)境。它對(duì)類或私有設(shè)備環(huán)境無效,以便該設(shè)備環(huán)境可以被其它應(yīng)用程序使用。其原型聲明如下:intReleaseDC(CDC*pDC);//pDC為待釋放的設(shè)備環(huán)境的指針③BeginPaint()函數(shù):為在指定的窗口中畫圖做準(zhǔn)備工作,并且把與繪圖有關(guān)的信息填寫到PAINTSTRUCT結(jié)構(gòu)中。原型聲明如下:CDC*CWnd::BeginPaint(LPPAINTSTRUCTlpPaint);

lpPaint參數(shù)是指向PAINTSTRUCT結(jié)構(gòu)的指針。若函數(shù)調(diào)用成功則返回指定窗口的顯示器設(shè)備環(huán)境的指針,否則返回NULL第58頁(yè),共88頁(yè),2023年,2月20日,星期一④EndPaint()函數(shù)EndPaint()函數(shù)是用來結(jié)束指定窗口中的繪圖過程,其原型聲明如下:voidEndPaint(LPPAINTSTRUCTlpPaint);其參數(shù)的含義與BeginPaint()函數(shù)中的相同,返回值總是TRUE。⑤SelectObject()函數(shù)SelectObject()函數(shù)用于把位圖、畫筆、畫刷等GDI對(duì)象選入設(shè)備環(huán)境中,用新的對(duì)象替代同一類型的對(duì)象,其原型聲明如下:CPen*SelectObject(Cpen*pPen);CBrush*SelectObject(CBrush*pBrush);virtualCFont*SelectObject(CFont*pFont);CBitmap*SelectObject(CBitmap*pBitmap);intSelectObject(CRgn*pRgn);第59頁(yè),共88頁(yè),2023年,2月20日,星期一⑥D(zhuǎn)eleteObject()函數(shù)DeleteObject()函數(shù)可以刪除邏輯畫筆、畫刷、字體、位圖、區(qū)域或調(diào)色板對(duì)象,并釋放所有與該對(duì)象相關(guān)的系統(tǒng)資源,當(dāng)對(duì)象被刪除之后,則指定的對(duì)象句柄將無效。其原型聲明如下:BOOLDelectObject(HGDIOBJhObject);第60頁(yè),共88頁(yè),2023年,2月20日,星期一4、GDI對(duì)象GDI對(duì)象基類是CGdiObject。使用GDI對(duì)象時(shí)要注意以下兩點(diǎn)。①同其它MFC對(duì)象一樣,GDI對(duì)象的創(chuàng)建分為兩步:第一步定義一個(gè)GDI繪圖對(duì)象類的實(shí)例;第二步調(diào)用該對(duì)象的創(chuàng)建方法真正創(chuàng)建對(duì)象。②使用該對(duì)象時(shí),首先要調(diào)用CDC::SelectObject(),將它選入到設(shè)備上下文中,同時(shí)保存原來的設(shè)置到一個(gè)GDI對(duì)象指針如pOldObject中。在使用完后,再用SelectObject(pOldObject)恢復(fù)原來的設(shè)置。但是,如果該設(shè)備上下文是用戶自己創(chuàng)建的,則不必恢復(fù)原來設(shè)置,因?yàn)榭蚣軙?huì)在該設(shè)備上下文生存期結(jié)束時(shí)刪除該設(shè)備上下文,同時(shí)也就刪除了原來存放于該設(shè)備上下文中的繪圖對(duì)象設(shè)置。具體應(yīng)用參見下面的OnDraw函數(shù)。voidCMyProjectView::OnDraw(CDC*pDC){ …… CpenNewPen(PS_SOLID,1,RGB(0,0,0));//構(gòu)造畫筆類對(duì)象//選擇新設(shè)備環(huán)境的同時(shí),保存舊的繪圖對(duì)象到設(shè)備環(huán)境Cpen*pOldPen=pDC->SelectObject(&NewPen);……pDC->SelectObject(pOldPen);//恢復(fù)舊的繪圖對(duì)象……}第61頁(yè),共88頁(yè),2023年,2月20日,星期一總之,設(shè)備環(huán)境(DC)和圖形設(shè)備接口(GDI)是實(shí)現(xiàn)計(jì)算機(jī)繪圖的兩個(gè)重要的組成部分,DC主要負(fù)責(zé)設(shè)置繪圖的狀態(tài)和方式,而GDI則主要負(fù)責(zé)設(shè)置所用的繪圖工具。第62頁(yè),共88頁(yè),2023年,2月20日,星期一2.6.2OnDraw成員函數(shù)VC++所編寫的Windows圖形應(yīng)用程序通常是在視圖類中通過OnDraw函數(shù)中添加繪圖代碼完成圖形的生成。OnDraw函數(shù)是CView類中的一個(gè)虛擬成員函數(shù),每當(dāng)窗口需重繪時(shí)應(yīng)用程序框架會(huì)調(diào)用它。函數(shù)原型如下:virtualvoidOnDraw(CDC*pDC);

下面的OnDraw函數(shù)是由AppWizard直接生成的:voidCMyProjectView::OnDraw(CDC*pDC){ CMyProjectDoc*pDoc=GetDocument();//獲取當(dāng)前文檔指針ASSERT_VALID(pDoc);//檢查指針是否為空//TODO:adddrawcodefornativedatahere//下面可添加自己的程序代碼}第63頁(yè),共88頁(yè),2023年,2月20日,星期一2.6.3GDI對(duì)象類GDI的基本繪圖對(duì)象類有:CBitmap類、CBrush類、CFont類、CPen類、CRgn類和CPalette類.它們都是CGdi0bject類的派生類。第64頁(yè),共88頁(yè),2023年,2月20日,星期一1、CPen類

(1)CPen類構(gòu)造函數(shù)CPen的構(gòu)造函數(shù)可創(chuàng)建繪圖對(duì)象。該類有3個(gè)構(gòu)造函數(shù):CPen();CPen(intnPenStyle,intnWidth,COLORREFcrColor);CPen(intnPenStyle,intmWidth,constLOGVRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);該類封裝了Windows圖形設(shè)備接口畫筆,包含在“afxwin.h”頭文件中。畫筆是一種用來畫線及繪制有形邊框的工具,用戶可以指定它的顏色及寬度,并且可以指定它畫實(shí)線、點(diǎn)線或虛線。運(yùn)用缺省畫筆畫的是一個(gè)像素寬的黑色實(shí)線。第65頁(yè),共88頁(yè),2023年,2月20日,星期一PS_SOLID創(chuàng)建一個(gè)實(shí)線畫筆

PS_DASH創(chuàng)建一個(gè)虛線畫筆,該值只有當(dāng)畫筆寬度等于1個(gè)設(shè)備單位或更小時(shí)才有效

PS_DOT創(chuàng)建一個(gè)點(diǎn)線畫筆,該值只有當(dāng)畫筆寬度等于1個(gè)設(shè)備單位或更小時(shí)才有效

PS_DASHDOT創(chuàng)建一個(gè)點(diǎn)和虛線交替畫筆,該值只有當(dāng)畫筆寬度等于1個(gè)設(shè)備單位或更小時(shí)才有效

PS_DASHDOTDOT創(chuàng)建一個(gè)雙點(diǎn)線畫筆,該值只有當(dāng)畫筆寬度等于1個(gè)設(shè)備單位或更小時(shí)才有效

畫筆風(fēng)格:第66頁(yè),共88頁(yè),2023年,2月20日,星期一(2)CPen類初始化成員函數(shù)

①調(diào)用CreatePen()成員函數(shù)

CreatePen()成員函數(shù)通過指定線型、線寬和顏色等畫筆屬性參數(shù)直接創(chuàng)建一個(gè)具有特定線型、線寬和顏色的畫筆對(duì)象,其原型聲明如下:

BOOLCreatePen(intnPenStyle,intnWidth,COLORREFcrColor);BOOLCreatePen(intnPenStyle,intnWidth,constLOGBRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);

②調(diào)用CreatePenIndirect()成員函數(shù)

CreatePenIndirect()成員函數(shù)創(chuàng)建畫筆對(duì)象,其屬性并不是直接通過函數(shù)參數(shù)的形式給出的,而是通過LOGPEN結(jié)構(gòu)的成員變量間接地給出。為了創(chuàng)建一個(gè)具有特定屬性的畫筆對(duì)象主要工作是重置LOGPEN結(jié)構(gòu)的成員變量,該函數(shù)的原型聲明如下;

BOOLCreatePenIndirect(LPLOGPENlpLogPen);

參數(shù)lpLogPen是指向LOGPEN結(jié)構(gòu)的指針,在該結(jié)構(gòu)中有3個(gè)成員變量,分別用于指定畫筆的風(fēng)格、寬度和顏色。LOGPEN結(jié)構(gòu)的具體定義如下:

typedefstructtagLOGPEN{/*lgpn*/UNITlopnStyle;POINTlopnWidth;COLORREFlopnColor;}LOGPEN;第67頁(yè),共88頁(yè),2023年,2月20日,星期一2、CBrush類該類封裝了Windows的GDI刷子,包含在“afxwin.h”頭文件中。CBrush類畫刷用來填充一個(gè)封閉圖形對(duì)象(如矩形、橢圓)的內(nèi)部區(qū)域。缺省的畫刷將封閉圖形的內(nèi)部填充成全白色。通過該類構(gòu)造的CBrush對(duì)象可以傳遞給任何一個(gè)需要畫刷的CDC成員函數(shù)。該畫刷可以是實(shí)線、陰影線或某種圖案。(1)CBrush類構(gòu)造函數(shù)該類具有4個(gè)重載的構(gòu)造函數(shù):CBrush();CBrush(COLORREFcrColor);CBrush(intnIndex,COLORREFcrColor);CBrush(CBitmap*pBitmap);第68頁(yè),共88頁(yè),2023年,2月20日,星期一(2)CBrush初始化成員函數(shù)①調(diào)用CBrush::CreateSolidBrush()成員函數(shù)來初始化實(shí)畫刷,以便使用純色來填充區(qū)域內(nèi)部.②調(diào)用CBrush::CreateHatchBrush()成員因數(shù)來初始化陰影畫刷,參數(shù)與構(gòu)造函數(shù)中的參數(shù)完全相同。

BOOLCreateHatchBrush(intnIndex,COLORREFcrColor);③調(diào)用CBrush::CreatePatternBrush()成員函數(shù)來初始化一個(gè)圖形畫刷,當(dāng)使用該畫刷填充圖形時(shí),圖形內(nèi)部將用位圖一個(gè)接一個(gè)的填充。該函數(shù)原型聲明如下:BOOLCreatePatternBrush(CBitmap*pBitmap);參數(shù)如前所述。使用圖形畫刷需要注意的是在刪除圖形畫刷時(shí)與畫刷相聯(lián)系的位圖并未被刪除,位圖必須被單獨(dú)地刪除。④調(diào)用CBrush::CreateBrushIndirect()成員函數(shù)來創(chuàng)建畫刷對(duì)象,畫刷的屬性并不是直接通過函數(shù)參數(shù)的形式給出的,而是通過LOGBRUSH結(jié)構(gòu)的成員變量間接的給出的。該函數(shù)原型聲明如下:BOOLCreateBrushIndirect(constLOGBRUSH*lpLogBrush);程序演示第69頁(yè),共88頁(yè),2023年,2月20日,星期一3、CFont類該類封裝一個(gè)Windows的圖形設(shè)備接口字體并且提供了操縱字體的成員函數(shù),包含在“afxwin.h”頭文件中。字體CFont類是一種具有某種風(fēng)格和尺寸的所有字符的完整集合,它常常被當(dāng)作資源存于磁盤中,其中有一些還依賴于某種設(shè)備。要使用CFont對(duì)象,則需構(gòu)造一個(gè)CFont對(duì)象并用成員函數(shù)CreateFont、CreateFontIndirect、CreatePointFont或CreatePointFontIndirect將一個(gè)Windows字體附加給它,然后用該對(duì)象的成員函數(shù)來操縱字體。CreatePointFont和CreatePointFontIndirect要比CreateFontIndirect好用,因?yàn)樗鼈冏詣?dòng)將字體高度從點(diǎn)大小變?yōu)檫壿媶挝?。?0頁(yè),共88頁(yè),2023年,2月20日,星期一4、CBitmap類(1)CBitmap類構(gòu)造函數(shù)CBitmap類構(gòu)造函數(shù)的原型為:CBitmap();它負(fù)責(zé)構(gòu)造一個(gè)CBitmap對(duì)象。生成的對(duì)象必須用下面的成員函數(shù)進(jìn)行初始化。(2)CBitmap對(duì)象的初始化成員函數(shù)①CreateBitmap(intnWidth,intnHeight,UINTnPlanes,UINTnBitcount,constvoid*lpBits)②BOOLLoadBitmap(LPCTSTRlpszResourceName);BOOLLoadBitmap(UINTnIDResoure);第71頁(yè),共88頁(yè),2023年,2月20日,星期一2.7OpenGL程序設(shè)計(jì)基礎(chǔ)2.7.1OpenGL的主要功能2.7.2OpenGL繪圖程序開發(fā)方法第72頁(yè),共88頁(yè),2023年,2月20日,星期一2.7.1OpenGL的主要功能1、OpenGL基本操作①繪制物體:真實(shí)世界里的任何物體都可以在計(jì)算機(jī)中用簡(jiǎn)單的點(diǎn)、線、多邊形來描述。OpenGL提供了豐富的基本圖元繪制命令,從而可以方便地繪制物體。②變換:論多么復(fù)雜的圖形都是由基本圖元組成并經(jīng)過一系列變換來實(shí)現(xiàn)的,OpenGL提供了一系列基本的變換,如取景變換、模型變換、投影變換及視口變換。③光照處理:正如自然界不可缺少光一樣,繪制有真實(shí)感的三維物體必須做光照處理。④著色:OpenGL提供了兩種物體著色模式,一種是RGBA顏色模式,另一種是顏色索引模式。⑤反走樣:在OpenGL繪制圖形過程中,由于使用的是位圖,所以繪制出的圖像的邊緣會(huì)出現(xiàn)鋸齒形狀,稱為走樣。為了消除這種缺陷,OpenGL提供了點(diǎn)、線、多邊形的反走樣技術(shù)。⑥融合:為了使三維圖形更加具有真實(shí)感,經(jīng)常需要處理半透明或透明的物體圖像,這就要用到融合技術(shù)。⑦霧化:正如自然界中存在煙霧一樣,OpenGL提供了"fog"的基本操作來達(dá)到對(duì)場(chǎng)景進(jìn)行霧化的效果。⑧位圖和圖像:在圖形繪制過程中,位圖和圖像操作是非常重要的一個(gè)方面。OpenGL提供了一系列函數(shù)來實(shí)現(xiàn)位圖和圖像的操作。⑨紋理映射:在計(jì)算機(jī)圖形學(xué)中,把包含顏色、alpha值、亮度等數(shù)據(jù)的矩形數(shù)組稱為紋理。紋理映射可以理解為將紋理粘貼在所繪制的三維模型表面,以使三維圖形顯得更生動(dòng)。⑩動(dòng)畫:出色的動(dòng)畫效果是OpenGL的一大特色,OpenGL提供了雙緩存技術(shù)來實(shí)現(xiàn)動(dòng)畫繪制,即在顯示前臺(tái)緩存中圖像的同時(shí),后臺(tái)緩存繪制第二幅圖像;當(dāng)后臺(tái)繪制完成后,后臺(tái)緩存中的圖像就顯示出來,此時(shí)原來的前臺(tái)緩存開始繪制第三幅圖像。如此循環(huán)往復(fù),以增加圖像的輸出速度。第73頁(yè),共88頁(yè),2023年,2月20日,星期一2、OpenGL函數(shù)及數(shù)據(jù)類型

OpenGL的庫(kù)函數(shù)分為4類:核心庫(kù)函數(shù)、實(shí)用庫(kù)函數(shù)、輔助庫(kù)函數(shù)和專用庫(kù)函數(shù)①核心庫(kù)函數(shù):OpenGL有115個(gè)核心庫(kù)函數(shù),均以“gl”作為前綴,它們提供了最基本的功能,比如實(shí)現(xiàn)三維建模、建立光照模型、反走樣和紋理映射等功能。②實(shí)用庫(kù)函數(shù):OpenGL的實(shí)用庫(kù)函數(shù)有43個(gè),以“glu”為前綴,它們?cè)诤诵暮瘮?shù)的上層。其實(shí)質(zhì)是對(duì)核心函數(shù)進(jìn)行組織和封裝,提供比較簡(jiǎn)單的函數(shù)接口和用法,可減輕開發(fā)者的編程負(fù)擔(dān)。③輔助庫(kù)函數(shù):OpenGL的輔助庫(kù)函數(shù)有31個(gè),以“aux”為前綴。應(yīng)用程序只能在Win32環(huán)境中使用這些函數(shù),可移植性較差,在Windows應(yīng)用程序中一般用于窗口管理、輸入輸出處理以及繪制一些簡(jiǎn)單的三維形體。④專用庫(kù)函數(shù):專用庫(kù)函數(shù)是由6個(gè)以“wgl”為前綴的函數(shù)和5個(gè)Win32API函數(shù)組成?!皐gl”函數(shù)用于連接Windows和OpenGL、初始化窗口,能夠使用OpenGL在窗口中進(jìn)行繪制;Win32API函數(shù)是用于處理像素存儲(chǔ)格式、雙緩存等函數(shù)的調(diào)用。

OpenGL中函數(shù)的命名規(guī)則為“前綴——詞根——數(shù)字后綴——類型后綴”。前綴表明函數(shù)的類型;詞根為函數(shù)的功能描述;數(shù)字后綴可以是“2”、“3”、“4”,表明參數(shù)向量的維數(shù);類型后綴可以是“b”、“i”、“f”等,表明函數(shù)參數(shù)的數(shù)據(jù)類型。例如函數(shù)“glColor3f”:“gl”表明這個(gè)函數(shù)屬于核心函數(shù),“Color”表明它用來設(shè)置當(dāng)前顏色,“3”表明函數(shù)需要3個(gè)參數(shù),“f”表明函數(shù)的每一個(gè)參數(shù)都為浮點(diǎn)型數(shù)值。OpenGL定義的常量,都以GL開頭,并且所有字母都大寫,單詞之間以下劃線來分隔,例如GL_COLOR_BUFFER_BIT。第74頁(yè),共88頁(yè),2023年,2月20日,星期一3、OpenGL的緩沖區(qū)OpenGL進(jìn)行圖形顯示時(shí)需要用到4個(gè)緩沖區(qū):顏色緩存、深度緩存、模板緩存和累積緩存。①顏色緩存顏色緩存由紅、綠、藍(lán)、alpha位平面組成,有前緩存、后緩存、左前緩存、右前緩存、左后緩存、右后緩存。其中左前緩存是必需的顏色緩存,前緩存是可見緩存、后緩存是不可見緩存。前后緩存技術(shù)可實(shí)現(xiàn)動(dòng)畫操作。②深度緩存深度緩存也叫Z-buffer,記錄每個(gè)像素點(diǎn)所對(duì)應(yīng)的物體點(diǎn)到視點(diǎn)的距離,由此決定表面的可見性,用于物體的消隱。③模板緩存和累積緩存模板緩存和累積緩存主要用于圖形的特殊效果會(huì)制。模板緩存存放像素的魔板制,用于控制像素是否被改寫,實(shí)現(xiàn)禁止在屏幕的某些區(qū)域繪圖。模板緩存可用于多種復(fù)雜圖形的繪制(凸/凹區(qū)域、凹多邊形等),屏蔽屏幕區(qū)域、遮擋物體、制作物體的交集等。累積緩存是一系列繪制結(jié)果的積累,可用來實(shí)現(xiàn)場(chǎng)景的反走樣、景深模擬和運(yùn)動(dòng)模糊等。第75頁(yè),共88頁(yè),2023年,2月20日,星期一2.7.2OpenGL繪圖程序開發(fā)方法利用VC++和OpenGL來開發(fā)繪圖程序,需要構(gòu)造一個(gè)基于消息的Windows窗口,在這個(gè)窗口中使用OpenGL的函數(shù)進(jìn)行繪制和渲染。有兩種構(gòu)造窗口的方法,一種是應(yīng)用OpenGL的GLU和AUX函數(shù)庫(kù),另一種是使用VC++的MFC。使用輔助函數(shù)庫(kù)和使用MFC來構(gòu)造應(yīng)用程序框架的不同之處在于MFC應(yīng)用程序是由Windows來分發(fā)消息,在消息響應(yīng)函數(shù)中處理初始化、設(shè)置繪圖場(chǎng)景和繪制圖形的工作;而使用輔助庫(kù)則是編寫回調(diào)函數(shù),然后在主函數(shù)中使用auxReshapeFunc和auxMainLoop調(diào)用回調(diào)函數(shù)來實(shí)現(xiàn)消息的循環(huán)。第76頁(yè),共88頁(yè),2023年,2月20日,星期一舉例說明用VisualC++開發(fā)OpenGL繪圖程序開發(fā)方法1、利用OpenGL的GLU和AUX函數(shù)庫(kù)來實(shí)現(xiàn)顏色漸變?nèi)切蔚睦L制及渲染的功能①新建工程在VC++中的“File”菜單中選擇“New”命令,在彈出的對(duì)話框中選擇項(xiàng)目的類型為“Win32ConsoleApplication”,然后輸入項(xiàng)目的名字“FirstAuxOpenGL”。用鼠標(biāo)左鍵單擊“OK”按鈕進(jìn)入應(yīng)用程序向?qū)?duì)話框。在該對(duì)話框中,選擇項(xiàng)目的類型為“AnEmpetyProject”,即一個(gè)空的項(xiàng)目。選擇完成以后,用鼠標(biāo)左鍵單擊“Finish”按鈕,結(jié)束項(xiàng)目設(shè)置,即可自動(dòng)生成應(yīng)用程序的框架。②添加文件用鼠標(biāo)左鍵單擊——“NewTextFile”按鈕,選擇“File”菜單中的“另存為”項(xiàng),將其保存為“FirstAuxOpenGL.c”文件。通過鼠標(biāo)右鍵單擊“SourceFiles”,顯示出如圖2.24所示的界面,用鼠標(biāo)左鍵單擊“AddFilestoFolder…”即可把文件“FirstAuxOpenGL.c”加到項(xiàng)目中。第77頁(yè),共88頁(yè),2023年,2月20日,星期一2、使用MFC和專用函數(shù)實(shí)現(xiàn)顏色漸變?nèi)切蔚睦L制及渲染功能

使用MFC所提供的基于Windows的消息發(fā)送機(jī)制的“文檔—視圖”結(jié)構(gòu)來組織應(yīng)用程序,用OpenGL所提供的專用函數(shù)來與MFC應(yīng)用程序相銜接①新建工程在VC++的“File”菜單中選擇“New”命令,在彈出的對(duì)話框中選擇項(xiàng)目的類型為“MFCAppwizard(exe)”,輸入項(xiàng)目的名字“FirstMfcOpenGL”,然后單擊“OK”按鈕進(jìn)入應(yīng)用程序向?qū)?duì)話框。創(chuàng)建單文檔應(yīng)用程序,然后單擊“Finish”按鈕,接受默認(rèn)設(shè)置,即可自動(dòng)生成應(yīng)用程序的框架。②添加初始化及終止代碼在視類CFirstMfcOpenGLView的頭文件CFirstMfcOpenGLView.h中加入頭文件“gl.h”和“glu.h”,以及兩個(gè)記錄繪圖設(shè)備的成員變量,如下面程序所示:第78頁(yè),共88頁(yè),2023年,2月20日,星期一③根據(jù)窗口大小設(shè)置場(chǎng)景在MFC應(yīng)用程序中,窗口的位置及大小的改變都會(huì)激發(fā)一個(gè)W

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論