




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
3.1VisualC++軟件設計方法3.2圖形編程基礎3.3在視圖內繪圖3.4映射模式3.5OpenGL圖形標準1.1計算機圖形學的研究內容3.1.1開發環境和開發工具概述VisualC++6.0開發環境DeveloperStudio是由運行在Windows環境下的一套集成工具組成的,包含輸入程序源代碼的文本編輯器(TextEditor)、設計用戶界面(如菜單、對話框、圖標等)的資源編輯器(ResourcesEditor)、跟蹤源文件和建立項目配置的項目管理器(ProjectBuildFacilities)、建立并運行程序的優化編譯器(OptimizingCompiler)和增量連接器(IncrementalLinker)以及檢查程序錯誤的集成調試器(IntegratedDebugger)等。VisualC++6.0提供具有強大功能的向導工具AppWizard和ClassWizard來簡化Win32圖形程序的開發。AppWizard向導用于幫助用戶生成各種不同類型應用程序的基本框架,生成完整的從開始文件出發的基于MFC類庫的源文件和資源文件。在創建應用程序的基本框架后,使用ClassWizard來創建新類、定義消息處理函數、重載虛擬函數和從對話框的控件中獲取數據并驗證數據的合法性。VisualC++6.0的DeveloperStudio為標準的Windows界面,由標題欄、菜單欄、工具欄、工作區窗口、源代碼編輯窗口、輸出窗口和狀態欄組成,如圖3-1所示。屏幕的最上端是標題欄,標題欄用于顯示應用程序名和所打開的文件名。標題欄左端為控制菜單框,用于控制窗口的大小和位置。標題欄右端有3個控制按鈕,分別為最小化按鈕、還原按鈕和關閉按鈕,這些按鈕用于快速設置窗口大小。標題欄的下面是菜單欄和工具欄。菜單欄由多個菜單組成,包含著VisualC++6.0的絕大部分功能,是日常工作不可缺少的主要工具之一。工具欄由某些操作按鈕組成,分別對應某些菜單選項或命令的功能,可直接用鼠標單擊這些按鈕來完成指定的功能。默認時,屏幕工具欄區域顯示有兩個工具欄,即Standard工具欄和Build工具欄。工具欄的下面是兩個窗口,一個是工作區窗口,另一個是源代碼編輯窗口。工作區窗口的下面是輸出窗口,用于顯示項目建立過程中所產生的錯誤信息。屏幕最底端是狀態欄,顯示當前操作或所選命令的提示信息。3.1.2實用AppWizard生成一個圖形應用重要程序的框架AppWizard(程序生成向導)可為使用MFC的典型C++Windows應用程序建立開發項目,它提供了一系列對話框及多種選項,用戶可以根據不同的選項生成自己所需的具有各種特征的應用程序框架。具體步驟如下:步驟1:選擇File→New命令,在New對話框中選擇Projects選項卡,選擇MFCAppWizard(.exe)。在Location文件框中,可直接輸入目錄名稱,或者單擊“...”按鈕選擇已有的目錄。在Projectname文本框中輸入項目名稱,此時OK按鈕變亮,單擊后彈出MFCAppWizard-Step1對話框,如圖3-2所示。選中Singledocuments單選按鈕和“中文\[簡體,中國\]”選項,單擊Next按鈕,進入下一步驟。步驟2:該步驟用于決定應用程序是否需要數據庫支持。一般圖形程序不需要數據庫支持,因此選中默認值None選項即可。步驟3:該步驟用于決定應用程序是否需要復合文檔支持。一般圖形程序需要服務器型的復合文檔支持,因此選擇FullSever選項即可。步驟4:選擇None單選按鈕,并單擊Next按鈕,出現MFCAppWizard-Step4of6對話框,如圖3-3所示。步驟5:在該步驟中采用默認設置。步驟6:單擊Next按鈕,出現MFCAppWizard-Step6of6對話框,如圖3-4所示。對話框中的默認設置確定了類的名稱及其所在文件的名稱。在對話框中,單擊Finish按鈕,AppWizard顯示將要創建的文件清單。3.1.3實用資源編輯器生成圖形用戶界面資源作為一種界面成分,可以從中獲取信息并在其中執行某種動作。VisualC++.Net可以處理的資源有加速鍵(Accelerator)、位圖(Bitmap)、光標(Cursor)、對話框(DialogBox)、圖標(Icon)、菜單(Menu)、串表(StringTable)、工具欄(Toolbar)和版本信息(VersionInformation)等。DeveloperStudio可提供功能強大且易于使用的資源編輯器,用于創建和修改應用程序的資源。使用資源編輯器可以創建新的資源,修改、復制已有的資源以及刪除不再需要的資源。例如,用加速鍵編輯器處理加速表、用圖形編輯器處理圖形資源(工具欄、位圖、光標和圖標等)、用對話編輯器處理對話框、用菜單編輯器處理菜單等。創建或者打開資源時,系統將自動打開應用的編輯器。編輯器打開后,單擊鼠標右鍵,將彈出快捷菜單,其中列有與當前資源有關的命令。1.創建的資源選擇Insert→Resource命令,彈出InsertResource對話框,如圖3-5所示。如果要創建新的資源,則從Resourcetype列表框中選擇資源類型,然后點擊New按鈕。新創建的資源將加入到當前資源文件中。2.查看和修改資源可以使用項目工作區窗口的ResourceView面板來查看和修改資源,如圖3-6所示。首次打開ResourceView面板時,系統將自動壓縮每個資源分類,可單擊“+”標記來擴展每一分類。可以使用菜單命令來復制、移動、粘貼或者刪除資源,也可以通過雙擊打開相應的編輯器來修改資源,還可以用資源屬性對話框來修改資源的語言屬性或條件屬性。3.導入位圖、光標和圖標VisualC++6.0可以將單獨的位圖、光標或圖標文件導入資源文件中,方法為:(1)在ResourceView面板中單擊鼠標右鍵,從快捷菜單中選擇Import命令,彈出ImportResource對話框。(2)在對話框選擇要導入的.BMP(位圖)、.ICO(圖標)或.CUR(光標)文件。(3)選擇后單擊Import按鈕即可將文件添加到當前資源文件中。此外,還可以使用快捷菜單中的Export命令將位圖、光標或圖標從資源文件導出到單獨的文件中。4.資源模板除了創建資源文件外,還可以創建資源模板。資源模板創建后,就可以在資源模板的基礎上創建新的資源。資源模板的創建方法與資源文件的創建方法基本相同,不同處在于它必須使用File菜單中的SaveAs命令將資源模板保存在Devstudio\\ShareIDE\\Template文件夾中。5.資源符號資源符號由映射到整數值上的文本串組成,用于在源代碼或資源編輯器中引用資源或對象。在創建新的資源或對象時,系統自動為其提供默認符號名(如IDD_ABOUTBOX)和符號值。默認時,符號名和符號值自動保存在系統生成的資源文件resource.h中。可以使用資源屬性對話框來改變資源的符號名或符號值,方法為:(1)在ResourceView面板中選擇要處理的資源。(2)選擇View→Properties命令或按Alt+Enter鍵,彈出相應的資源屬性對話框,如圖3-7所示。(3)在ID文本框中輸入新的符號或符號值,或從已有的符號列表中選擇一種符號。如果輸入新的符號名,則系統會自動為其賦值。也可以在文本編輯器中直接修改resource.h文件來改變與多個資源有關的符號。符號名通常用帶有描述性的前綴來表示所代表的資源或對象類型。符號值通常有一定的限制。使用資源符號瀏覽器(通過選擇View→ResourceIncludes命令來啟動)可以簡化資源符號的管理,可以快速瀏覽已有資源符號的定義,創建、更改和刪除資源符號,快速切換到某個資源對應的編輯器中。3.1.4利用消息映射和消息處理交互式繪圖所有Windows應用程序都是由消息驅動的,當用戶單擊鼠標或改變窗口大小時,都將給適當的窗口發送消息。每個消息都對應于某個特定的事件。圖形軟件通過處理鼠標和鍵盤等Windows消息,實現交互式繪圖。1.消息的種類消息主要是指由用戶操作并向應用程序發出的信息,也包括操作系統內部產生的消息。例如,點擊鼠標左鍵,Windows將產生WM_LBUTTONDOWN消息,而釋放鼠標左鍵將產生WM_LBUTTONUP消息,按下鍵盤上的字母鍵,將產生WM_CHAR消息。在VC中,消息主要有三種類型,即Windows消息、控件通知和命令消息。(1)Windows消息。除了WM_COMMAND外,所有以WM_為前綴的消息都是Windows消息。Windows消息由窗口和視圖處理。這類消息通常含有用于確定如何對消息進行處理的一些參數。(2)控件通知。控件通知包含從控件和其他窗口傳送給父窗口的WM_COMMAND通知消息。窗口的消息處理函數將以適當的方式對通知消息作出響應,如獲取編輯控件中的文本。像其他標準Windows消息一樣,控件通知消息也由窗口和視圖處理。但是,用戶單擊按鈕控件時發出的BN_CLICKED控制通知消息將作為命令消息來處理。(3)命令消息。命令消息包含來自用戶界面對象的WM_COMMAND通知消息。菜單項、工具欄按鈕和加速鍵都是可以產生命令的用戶界面對象。每個這樣的對象都有一個ID,通過給對象和命令分配同一個ID可以把用戶界面對象與命令聯系起來。正如在“消息”中所說的那樣,命令是被當作特殊的消息來處理的。通常,命令ID是以其所表示的用戶界面對象的功能來命令的。MFC類庫預定義了某些命令ID(如ID_EDIT_PASTE、ID_FILE_OPEN等),而其他命令ID需則要編程人員自己定義。所有預定義命令ID的列表可參見afxres.h文件。命令消息的處理與其他消息的處理不同,命令消息可以被更廣泛的對象(如文檔、文檔模板、應用程序對象、窗口和視圖等)處理。Windows把命令發送給多個候選對象,稱為命令目標,通常其中的一個對象有針對該命令的處理函數。處理函數處理命令的方法與處理Windows消息的方法是一樣的,但調用機制不一樣。2.消息處理在MFC中,每個專門的處理函數單獨處理每個消息,編寫消息處理函數是編寫框架應用程序的主要任務。可以使用ClassWizard創建消息處理函數,然后從ClassWizard直接跳到源文件消息處理函數的定義部分,并從中編寫消息處理函數的代碼。(1)Windows消息和控件通知的處理函數。Windows消息和控件通知都是由派生于CWnd的窗口類對象處理的。它們包括CFrameWnd、CMDIFrameWnd、CMDIChildWnd、CView、CDialog以及從這些類派生的用戶自定義的類。這樣的類對象封裝了Windows窗口的句柄HWND。Windows消息和控件通知都有默認的處理函數,這些函數在CWnd類中進行了預定義。MFC類庫以消息名為基礎形成這些處理函數的名稱,這些名稱都以前綴On開始。有的處理函數不帶參數,有的則有幾個參數,有的還有除了void以外的返回值類型。CWnd中消息處理函數的說明都有afx_msg前綴。關鍵字afx_msg用于把處理函數與其他CWnd成員函數區分開來。常見的Windows消息有鼠標消息(如WM_LBUTTONDOWN消息)、鍵盤字符消息(WM_CHAR消息)、鍵盤按鍵消息(WM_KEYDOWN)、窗口重畫消息(WM_PAINT消息)、水平和垂直滾動消息(WM_HSCROLL消息和WM_VSCROLL消息)以及系統時鐘消息(WM_TIMER消息)等。(2)命令消息的處理函數。由于用戶界面對象是由用戶定義的,每個應用程序的用戶界面對象千差萬別,所以來自用戶界面對象的命令消息沒有默認的處理函數。如果某條命令直接影響某個特定的對象,則應讓該對象來處理這條命令。例如,File菜單中的Open命令與應用程序有關,所以,Open命令的處理函數是應用程序類的一個成員函數。把命令消息映射成處理函數時,ClassWizard以命令ID來命名處理函數,可以接受、修改或替換推薦使用的名稱。命令消息的處理函數沒有參數,也不返回值。3.消息映射可以接受消息和命令的所有框架類都有自己的消息映射。框架利用消息映射把消息和命令與它們的處理函數鏈接起來。從CCmdTarget類派生的任何類都可以有消息映射。雖然名為“消息映射”,但消息映射既可以處理消息,也可以處理命令,包括在“消息種類”中列出的三種消息種類。用MFCAppWizard創建應用程序框架時,AppWizard為創建的每個命令目標類(包括派生的應用程序對象、文檔、視圖和邊框窗口等)編寫一個消息映射。每個命令目標類的消息映射存放在應用的.cpp文件中。可以在AppWizard創建基本消息映射的基礎上,使用ClassWizard為每個類將處理的消息和命令添加一些條目。每個命令目標類的消息映射都由一組預定義的宏組成,稱為映射宏。其中,宏BEGIN_MESSAGE_MAP和END_MESSAGE_MAP用于將消息映射括起來,其他宏(如ON_COMMAND)則包含有消息映射的內容。宏的格式依消息類型而定,宏內部的兩個參數即為消息和消息處理函數。表3-1列出了MFC預定義的消息映射宏。應注意的是,消息映射宏后面不能帶有分號。此外,消息映射還包括以下形式的注釋://{{AFX_MSG_MAP(CDrawApp)//}}AFX_MSG_MAP4.利用消息處理函數實現交互式繪圖交互式繪圖是指應用輸入設備與交換技術進行可視的、動態的圖形繪制。交互技術包括定位技術、橡皮條技術、拖動技術、菜單技術、定值技術、拾取技術和捕捉技術。這些交互技術都是依賴輸入設備而實現的。3.2圖形編程基礎3.2.1圖形設備接口圖形設備接口(GraphicsDeviceInterface,GDI),表示的是一個抽象的接口。換句話說,就是相當于一個關于圖形顯示的函數庫。通過該接口可以實現對圖形的顏色、線條等屬性的控制。程序可以通過調用這些GDI函數和硬件打交道,從而實現設備無關性。也就是說,對于Windows編程不允許直接訪問顯示硬件,必須通過和特定窗口相關聯的“設備環境”與顯示硬件進行通信。因此,各種GDI函數會自動參考被稱為“設備環境”的數據結構進行繪制工作。3.2.2設備環境設備環境(DC)又稱設備上下文,也稱設備描述表,實際上就是一個關于如何繪制圖形的方法的集合。它不僅可以繪制各種圖形,還可以確定在應用窗口中繪制圖形的方式,即確定繪圖模式和映射模式。用戶在繪圖之前,必須獲取繪圖窗口區域的一個DC。接著才能進行GDI函數的調用,執行適合DC的命令。獲取DC時,用戶不必關心大多數的屬性,因為Windows初始化了一套完整的屬性和對象集合,用戶可以使用它們渲染顯示。同時,為了創建自己應用程序特定顯示,還可以更改這些屬性和對象。在Windows編程術語中,給DC提供新對象的操作被稱為將繪圖對象選取到DC中。另外,應該注意的是,Windows的設備環境是GDI的關鍵元素,它代表了不同的物理設備,分為顯示器型、打印機型、內存型和信息型4種類型。3.2.3設備環境類MFC(Microsoft基本類庫)4.21版本中包含了一些設備環境類,其中CDC類包含了繪圖所需的全部成員函數(包括部分虛函數),并且除了CMetaFileDC類之外,所有的派生類只有構造函數和析構函數的定義有所不同。在MFC中,提出這些派生類的目的是為了在不同的顯示設備上進行顯示。1)CDC類中常用的成員函數表3-3所示為CDC類中一些常用的成員函數。2)CDC類的派生類的功能及其之間的區別CDC各派生類各有特點,并可以完成不同的功能,表3-4介紹了各派生類的主要功能。3)CDC類的具體應用顯示器設備環境是最常用的設備環境。通過對函數CWnd::GetDC()、CWnd::GetDCEx()或CWnd::BeginPaint()的調用,應用程序就可以檢取指定窗口的工作區的顯示器設備環境的句柄,可以在后續的GDI函數中使用該顯示器設備環境在窗口工作區中畫圖。當完成繪圖操作之后,應用程序應該調用CWnd::ReleaseDC()和CWnd::EndPaint()函數來釋放設備環境。對于打印機設備環境,應用程序是通過調用CWnd::CreateDC()函數來創建的。當使用完畢后,應該調用CWnd::DeleteDC()函數來刪除它。內存設備環境是通過調用CWnd::CreateCompatibleDC()函數來創建的,它將創建一個與指定設備有兼容顏色格式的位圖,內存設備環境也常被稱為兼容設備環境。3.2.4GDI對象GDI是一個與各種圖形操作有關的函數集。在Windows應用程序中繪制或編輯圖形時可以調用這些函數。因為,在Windows屏幕上看到的任何東西都是圖形,所以在應用窗口中每次進行顯示和編輯操作時,都必須調用特定的GDI函數。Windows的GDI對象類型是通過MFC庫中的類來表示的,其中CGdiObject類正是所有GDI對象的抽象基類,其派生類包括CBitmap類、CBrush類、CFont類、CPen類、CRgn類和CPalette類。這些派生類對于繪制圖形和圖像來說都是非常重要的,編程者經常要使用這些類來創建繪圖工具,而很少使用基類CGdiObject。對于用戶來說根本不需要使用CGdiObject類的對象,然而,用戶必須使用其派生類的對象。通常,我們可以使用SelectObject函數將GDI對象選進設備環境。3.2.5DC與GDI設備之間的關系設備環境和圖形設備接口是實現計算機繪圖的兩個重要的組成部分,設備環境主要定義了繪圖的狀態和方式,而圖形設備接口則主要定義了采用的繪圖工具。3.3在視圖內繪圖3.3.1OnDraw成員函數在視圖內繪圖常使用OnDraw函數。該函數是CView類中的一個虛函數,每次需要重新繪制時,應用程序框架都會自動調用OnDraw函數。當用戶改變了窗口尺寸,或者當窗口恢復了先前被遮蓋的部分,或者當應用程序改變了窗口數據時,應用程序框架都會自動調用OnDraw函數。3.3.2Windows設備環境在MFC庫中,設備環境是通過C++的CDC類對象來表示的,該對象被作為參數(以指針的形式)傳遞給OnDraw函數。有了這個設備環境指針,人們就可以直接調用CDC類中的成員函數來完成各種各樣的繪制工作了。比如將繪圖函數加入OnDraw函數。3.3.3常見繪圖(1)繪制直線。繪制直線可以只用到兩個有關CDC類的成員函數:CPointMoveTo(intx,inty);//移動當前位置到x和y指定的點CPointMoveTo(POINTpoint);//移動當前位置到point指定的點//該函數返回前一個位置坐標x和y的值。該位置值被看作為一個CPoint對象BOOLLineTo(intx,inty);//從當前點向x和y指定的點畫線BOOLLineTo(POINTpoint);//從當前點向point指定的點畫線畫線功能就是通過這兩個函數來完成的。兩個函數配合使用,可以完成任何繪制直線和折線的操作。(2)繪制矩形。繪制矩形的方法很簡單,主要是調用CDC類的成員函數Rectangle,函數聲明如下:BOOLRectangle(intx1,inty1,intx2,inty2);BOOLRectangle(LPCRECTlpRect);參數x1和y1,x2和y2分別代表所要繪制的矩形的左上角頂點坐標值和右下角頂點坐標值。參數lpRect則指定了所要繪制的矩形區域。(3)繪制橢圓及圓。繪制橢圓及圓的成員函數為Ellipse,函數聲明如下:BOOLEllipse(intx1,inty1,intx2,inty2);BOOLEllipse(LPCRECTlpRect);參數x1和y1指定了所繪制橢圓的邊界矩形的左上角頂點坐標值,參數x2和y2指定了所繪制橢圓的邊界矩形的右下角頂點坐標值。參數lpRect直接指定了所繪制橢圓的邊界矩形區域,如圖3-9所示。將如下代碼添加到OnDraw函數中,便可以實現分別以指定的圓心繪制橢圓和圓的功能:繪制圓時可借用橢圓成員函數Ellipse,圓是橢圓的一種特殊情形,即橢圓邊界矩形為一個正方形。(4)繪制折線。繪制折線可以使用PolyLine()函數和PolyLineTo()函數,多邊形可以說是由首尾相連的封閉折線所圍成的圖形。繪制多邊形可以使用函數Polygon(),其聲明如下:BOOLPolygon(LPPOINTlpPoints,intnCount);參數lpPoints指向一個存放多邊形頂點的矩陣。參數nCount記錄多邊形頂點個數。3.4映射模式3.4.1Windows映射模式簡介Windows提供了幾種映射模式,或稱為坐標系,可以通過它們來和設備坐標相聯系(當前映射模式下的坐標稱為邏輯坐標)。表3-5中詳細介紹了Windows的8種映射模式。MM_TEXT映射模式允許應用程序利用設備像素工作,因此用它來表示設備坐標系再適合不過了。屏幕(窗口)的原點約定在左上點,而X和Y方向向右下方增長。MM_LOMETRIC、MM_HIMETRIC、MM_LONGLISH、MM_HIENGLISH、MM_TWIPS被稱為“固定比例”映射模式。所有固定比例的映射模式的x值向右是遞增的,y值向下是遞減的(即笛卡爾坐標系)。它們之間的區別就在于設備坐標到邏輯坐標轉換的實際比例因子不同。值得注意的是,映射模式MM_TWIPS常用于打印機,一個“twip”單位相當于1/20磅(磅是一種度量單位,在Windows中1磅等于1/72英寸)。另外兩種映射模式MM_ISOTROPIC和MM_ANISOTROPIC被稱為“可變比例”映射模式。在這些模式下,我們可以改變它們的比例因子和坐標原點。借助于這兩種映射模式,當用戶改變了窗口尺寸時,繪制的圖形大小也會發生相應的變化;同時,如果改變某個軸的方向,那么所繪制的圖形也會隨著該軸的變化而發生改變,并且我們還可以定義任意的比例因子。在MM_ISOTROPIC模式下,X方向與Y方向上的比例因子總是相等的(即縱橫比值為1∶1),而在MM_ANISOTROPIC模式下,X方向與Y方向上的比例因子可以不相等(即縱橫比例任意),因此通過這一特點,我們可以很容易地將圓拉伸成橢圓。3.4.2如何設置映射模式映射模式的設置比較容易,在VC++中調用CDC類中的成員函數SetMapMode即可完成。該函數的聲明如下:virtualintSetMapMode(intnMapMode);3.5OpenGL圖形標準3.5.1OpenGL簡介OpenGL是近幾年發展起來的一個性能卓越的三維圖形標準,它是在SGL等多家世界聞名的計算機公司的倡導下,以SGI的GL三維圖形庫為基礎制定的、可以獨立于窗口操作系統和硬件環境的、開放式的三維圖形標準。其目的是將用戶從具體的硬件系統和操作系統中解放出來,使他們不必理解這些系統的結構和指令系統,只需按規定的格式書寫應用程序即可編寫在任何支持該語言的硬件平臺上執行的程序。OpenGL實際上是一個開放式的、與硬件無關的圖形軟件包,它獨立于窗口系統和操作系統,以它為基礎開發的應用程序,可以運行在當前各種流行的操作系統之上,如Windows、UNIX、Linux、MacOS、OS/2等,并且能夠方便地在各種平臺間移植。OpenGL應用程序幾乎可以在任何操作系統下運行。從個人計算機到工作站和超級計算機,都能實現高性能的三維圖形功能。由于OpenGL具有高度可重用性和靈活性,它已經成為高性能圖形和交互式視景處理的工業標準。OpenGL是一個專業的、功能強大且調用方便的底層三維圖形函數庫,可用于開發交互式二維和三維圖形應用程序。從真實感圖形顯示、三維動畫、CAD到可視化仿真,都可以用OpenGL開發出高質量、高性能的圖形應用程序。OpenGL是一個圖形與硬件的接口,它由幾百個函數組成,僅核心圖形函數就有一百多個。OpenGL不要求開發人員把三維模型數據寫成固定的數據格式,也不要求開發人員編寫矩陣變換、外部設備訪問等函數,從而簡化了三維圖形程序的編寫。值得一提的是,雖然微軟有自己的三維編程開發工具DirectX,但它也提供OpenGL圖形標準,因此,OpenGL在CAD、虛擬現實、科學可視化、娛樂動畫等領域得到了廣泛應用,尤其適合醫學成像、地理信息、石油勘探、氣象模型等應用。3.5.2OpenGL的主要特點和功能penGL作為一個性能優越的圖形應用程序設計接口(API),它主要具有以下9種功能。(1)模型繪制。OpenGL能夠繪制點、線和多邊形。應用這些基本形體,可以構造出幾乎所有的三維模型。(2)模型觀察。在建立三維景物模型后,可利用OpenGL描述如何觀察所建立的三維模型。(3)顏色模式。OpenGL提供了RGBA模式和顏色索引兩種物體著色模式。(4)光照應用。用OpenGL繪制的三維模型必須加上光照才能與客觀物體更加相似,物體色彩的表現是光照條件與物體材質屬性相互作用的結果。(5)圖像效果增強。OpenGL提供了一系列的增強三維景觀圖像效果的函數,這些函數包括反走樣、混合和霧化。(6)位圖和圖像處理。OpenGL提供了一系列專門對位圖和圖像進行操作的函數。位圖和圖像數據均采用像素矩陣來表示。(7)紋理映射。為了更加逼真地表現三維景物,OpenGL提供了紋理映射功能。它所提供的一系列紋理映射函數可以十分方便地把真實圖像貼到景物的多邊形上,從而繪制逼真的三維景物。(8)實時動畫。OpenGL采用雙緩存技術(DoubleBuffer),并為其提供了一系列的函數。(9)交互技術。OpenGL提供了方便的三維圖形人機交互接口,用戶通過輸入設備可選擇和修改三維景觀中的物體。3.5.3OpenGL開發庫的基本組成Windows下的OpenGL由如下三部分文件組成:(1)函數的說明文件:gl.h、glu.h、glut.h、glaux.h。(2)靜態鏈接庫文件:glu32.lib、glut32.lib、glaux.lib和opengl32.lib。(3)動態鏈接庫文件:Glu.dll、glu32.dll、glut.dll、glut32.dll和opengl32.dll。OpenGL的庫函數采用C語言風格,它們
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB36-T1630-2022-修水寧紅茶種植技術規程-江西省
- 艾灸治療腰部疼痛
- 2025年北京市大興區九年級初三二模物理試卷(含答案)
- 高中化學平衡常數與轉化率專題訓練:2025年高考模擬題庫
- 2025年高考化學沖刺:化學反應速率與平衡圖像專項突破卷
- 2025年資產評估實務模擬試卷:不動產評估與機器設備評估技巧詳解與策略應用
- 廣東省汕尾市2025學年八年級上學期有機化學命名與結構能力測試題
- 2025年英國大學入學考試(UCAT)醫德與決策模擬試題庫(醫學倫理與臨床決策)
- 2025年教學進度調整審批的科研支持政策
- 2025年銀行從業銀行管理歷年真題匯編:押題解析全攻略
- GB/T 4490-2021織物芯輸送帶寬度和長度
- GB/T 3299-2011日用陶瓷器吸水率測定方法
- GB/T 18867-2014電子工業用氣體六氟化硫
- GB/T 17793-1999一般用途的加工銅及銅合金板帶材外形尺寸及允許偏差
- FZ/T 51011-2014纖維級聚己二酰己二胺切片
- ICU常見檢查項目及課件
- 《月光下的中國》朗誦稿
- 土地荒漠化的防治(公開課)課件
- 中考備考應對中考歷史學科的復習策略和解題技巧課件
- 第15課《驛路梨花》教學實錄
- 思想道德修養與法律基礎(完整版PPT)
評論
0/150
提交評論