freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

3d飛行訓(xùn)練系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_畢業(yè)論文(存儲(chǔ)版)

2025-07-05 22:35上一頁面

下一頁面
  

【正文】 ............................ 25 致 謝 ............................................................................................................................................. 26 論文) 1 摘 要 研究在普通的 PC 機(jī)下開發(fā)高質(zhì)量的視景仿真系統(tǒng) 。 Modeling 論文) 2 第一章 緒論 研究 3D飛行訓(xùn)練系統(tǒng)的背景及研究的意義 過去 ,在航空航天和軍事仿真等領(lǐng)域的許多系 統(tǒng)的開發(fā)研制過程中 ,飛行器的研制往往依靠飛行實(shí)驗(yàn)來完成型號(hào)的定型 ,研制過程漫長而且花費(fèi)巨大。美國空軍早在 1969年就開始利用仿真系統(tǒng) [4]代替部分實(shí)際飛行,使用仿真系統(tǒng)后的飛行費(fèi)用下降幅度達(dá) 66%至 95%。其次是系統(tǒng)功能和應(yīng)用 范圍的不斷擴(kuò)大。 本論文的基本路線 由于硬件的限制,本文著重的模擬通過鼠標(biāo)和鍵盤的系統(tǒng)交互式操作,進(jìn)而對(duì)仿真飛行訓(xùn)練系統(tǒng)的的實(shí)現(xiàn)。 第四章 : 在導(dǎo)入飛機(jī)模型后,使用鍵盤操作控制模型,運(yùn)行系統(tǒng)得到很好的演示效果。 在 OpenGL 的基礎(chǔ)上還有 Open Inventor、 Cosmo3D、 Optimizer 等多種高級(jí)圖形庫,適應(yīng)不同應(yīng)用。 OpenGL 的發(fā)展歷程 1992年 7月, SGI 公司發(fā)布了 OpenGL 的 ,隨后又與微軟公司共同開發(fā)了 Windows NT 版本的 OpenGL,從而使一些原來必須在高檔圖形工作站上運(yùn)行的大型 3D 圖形處理軟件也可以在微機(jī)上運(yùn)用。 OpenGL OpenGL ARB 的正式擴(kuò)展規(guī)格繪制語言“ OpenGL Shading Language”。 OpenGL OpenGL 著色語言“ GLSL”從 ,通過改進(jìn)程序增強(qiáng)了對(duì)最新可編程圖形硬件的訪問,還有更高效的頂點(diǎn)處理、擴(kuò)展的紋理功能、更彈性的緩沖管理等等。這個(gè)順序(如下圖所示),對(duì) OpenGL 的實(shí)現(xiàn)來說不是一套嚴(yán)格的規(guī)則,但是對(duì)我們了解 OpenGL 將做什么有很好的幫助。 所有幾何元素最后都要用頂點(diǎn)來描述。假如使用了紋理,紋理坐標(biāo)將要產(chǎn)生并轉(zhuǎn)換。 這個(gè)步驟的結(jié)果是用相關(guān)的顏色、景深、有時(shí)還有紋理坐標(biāo)值和輔助線完成幾何元素的轉(zhuǎn)換和裁剪處理,為光柵化做準(zhǔn)備。整個(gè)像素傳輸操作可以在數(shù)據(jù)寫到紋理內(nèi)存 或?qū)懟氐綆彺嬷兄巴ㄟ^一條單獨(dú)的路徑進(jìn)行。線和多邊形點(diǎn)、線寬、點(diǎn) 大小、陰影模型、反走樣的平均計(jì)算都被綜合考慮,與頂點(diǎn)被連接成線或用于填充多邊形的點(diǎn)都被計(jì)算出來。 Microsoft Visual C++提供了相應(yīng)的工具來完成這個(gè)工作: AppWizard 可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設(shè)計(jì)用戶接口; ClassWizard 用來協(xié)助添加代碼到框架文件;最后,編譯,則通過類庫實(shí)現(xiàn)了應(yīng)用程序特定的邏輯。另外, MFC 提出了以文檔 視圖為中心的編程模式, MFC 類庫封裝了對(duì)它的支持。 CObject 實(shí)現(xiàn)了一些重要的特性,包括動(dòng)態(tài)類信息、動(dòng)態(tài)創(chuàng)建、對(duì)象序列化、對(duì)程序調(diào)試的支持,等等。但是作為一個(gè)編程框架,有一個(gè)問題必須解決:如果僅僅通過虛擬函數(shù)來支持動(dòng)態(tài)約束,必然導(dǎo)致虛擬函數(shù)表過于臃腫,消耗內(nèi)存,效率低下。 MFC 的編程框架 MFC 的宏觀框架體系 MFC 實(shí)現(xiàn)了對(duì)應(yīng)用程序概念的封裝,把類、類的繼承、 動(dòng)態(tài)約束、類的關(guān)系和相互作用等封裝起來。又如,為了實(shí)現(xiàn)對(duì) DLL 編程的支持和多線程編程的支持, MFC 內(nèi)部使用了特別的處理方法,使用模塊狀態(tài)、線程狀態(tài)等來管理一些重要信息。實(shí)現(xiàn)這種功能的基礎(chǔ)是 C++對(duì)繼承的支持,對(duì)虛擬函數(shù)的支持,以及 MFC 實(shí)現(xiàn)的消息映射機(jī)制。基于框架的應(yīng)用程序必須有且只有一個(gè)應(yīng)用程序?qū)ο?,它?fù)責(zé)應(yīng)用程序的初始化、運(yùn)行和結(jié)束。視和文檔聯(lián)系在一起,在文檔和用戶之間起中介作用,即視在屏幕上顯示文檔的內(nèi)容,并把用戶輸入轉(zhuǎn)換成對(duì)文檔的操作。 構(gòu)成應(yīng)用程序的文件 通過上述分析,可知 AppWizard 產(chǎn)生的 MDI 框架程序的內(nèi)容,所定義和實(shí)現(xiàn)的類。 實(shí)現(xiàn)文件 所包含的頭文件 實(shí)現(xiàn)的內(nèi)容和功能 include 用來產(chǎn)生預(yù)編譯的類型信息。pfd)) == 0 ) { MessageBox(ChoosePixelFormat failed)。 并 添加 WM_CREATE 消息處理函數(shù),然后在 OnCreate 函數(shù)中進(jìn)行調(diào)用: // TODO: Add your specialized creation code here Init()。 glLoadIdentity()。 }。而 OpenGL 工具庫 (glu32. lib) 提供了用來形成錐體、柱體 ,盤狀體和球體的鑲嵌工具以及渲染它們的功能。一個(gè)例外是菜單( CMenu)不是從窗口派生的。 CWinApp 應(yīng)用程序類。 //線中的頂點(diǎn)數(shù)組 int lineCount。 ColorStruct colorList[COLOR_MAX]。 GLdouble minimumScale。 // 繪制天空 if(water) { DrawWater()。 GLfloat LightDiffuse[]= { , , , }。 飛機(jī)訓(xùn)練系統(tǒng)的關(guān)鍵模擬技術(shù) OpenGL 矩陣棧和矩陣操作 對(duì)可用 glMatrixMode 選擇的 4 種模式(建模觀察、投影、紋理和顏色)中的每一種, OpenGL都維護(hù)一個(gè)矩陣棧。另外三個(gè)矩陣模式的棧深度至少為 2,我們可以使用下列符號(hào)常量之一來確定每一個(gè)特定實(shí)現(xiàn)中的最大有效深度 GL_MAX_PROJECTION_STACK_DEPTH、GL_MAX_TEXTURE_STACK_DEPTH 或 GL_MAX_COLOR_STACK_DEPTH。 glPushMatrix() 。該矩陣也用于將幾何變換與向觀察坐標(biāo)系的變換進(jìn)行組合。使用下論文) 18 列函數(shù)可設(shè)定當(dāng)前矩陣為單位矩陣。 GLfloat elens[16]。當(dāng)前矩陣以后乘方式與 glMultMatrix 中指定的矩陣相乘,其積取代當(dāng)前矩陣。//Postmultiply identity with matrix M2. glMultMatrixf(elemsM1)。 鍵盤操控模型旋轉(zhuǎn)的矩陣原理 圍繞空間的任意軸旋轉(zhuǎn)一個(gè)對(duì)象,但繞平行于坐標(biāo)軸的軸的旋轉(zhuǎn)是最容易處理的。 參數(shù) ? 表示指定的繞 z 軸旋轉(zhuǎn)的角度,而 z 坐標(biāo)值在該變換中不改變。在旋轉(zhuǎn)函數(shù)中需指定經(jīng)過坐標(biāo)系原點(diǎn)的旋轉(zhuǎn)軸的角度和方向。由該函數(shù)生成的平移矩陣用來對(duì)調(diào)用此函數(shù)之后定義的對(duì)象的位置進(jìn)行變換。作為例子,下列語句為繞 z 軸旋轉(zhuǎn) ?90 的矩陣。,39。 () 在三維空間中,對(duì)象的平移通過平移定義該對(duì)象的各個(gè)點(diǎn)然后在新位置重建該對(duì)象而實(shí)現(xiàn)。col4。這樣生成相反的平移,而平移矩陣和其逆矩陣之積是單位矩陣。 matTransl3D[2][3]=tz。row4。39。 zyxP ? : zyx tzztyytxx ?????? 39。如果 v 并未定義成單位向量,則該旋轉(zhuǎn)矩陣在用于計(jì)算之前會(huì)被規(guī)范化。對(duì)于二維應(yīng)用而言,設(shè)定 tz=。 系統(tǒng)實(shí)現(xiàn)的原理及關(guān)鍵技術(shù) 在 OpenGL 的核心庫中,每一種基本的幾何變換都有一個(gè)獨(dú)立的函數(shù),所有變換都在三維空間中定義。 yxx ?? ?? co ssin39。這 與標(biāo)準(zhǔn)的數(shù)學(xué)轉(zhuǎn)換中行號(hào)先引用的情況相反。 glMultMatrixf()。 該程序生成下面的矩陣 ?????????????M () 我們也可以將指定的矩陣與當(dāng)前矩陣合并: glMultMatrix*(otherElements16)。我們用下列程序?qū)S^察矩陣進(jìn)行初始化,以便說明該次序。 建立建模觀察模式(或任何其他模式)之后,調(diào)用變換子程序所生成的矩陣要與該模式的當(dāng)前矩陣相乘。同樣的子程序可用來設(shè)定幾何變換矩陣。而我們可以在棧中保留一個(gè)單位矩陣,從而在當(dāng)前矩陣初始化時(shí)實(shí)現(xiàn)得比調(diào)用 glLoadIdentity 更快。 glGetIntegerv( GL_MAX_MODELVIEW_STACK_DEPTH,stackSize)。 glLightfv(GL_LIGHT1, GL_POSITION,LightPosition)。每一個(gè)片斷塊的顏色和景深值都被賦值 [8]。 接下來就是關(guān)于畫面的初步繪制 :地形、天空、水、飛機(jī)尾焰及太陽 DrawTerrain()。 GLdouble rotMat[16]。 //OBJ 文件中的頂點(diǎn) int ovCount。 //模型中的頂點(diǎn)列表 int vertexCount。另外,它通過消息映射表處理菜單、工具條、快捷鍵和其他用戶消息。模型的組織和管理是控制模型 的輸入和輸出,而模型的操作則主要是通過矩陣變換的運(yùn)算來實(shí)現(xiàn)的。 論文) 14 第三章飛行訓(xùn)練系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn) 系統(tǒng)的設(shè)計(jì) 任何復(fù)雜的幾何結(jié) 構(gòu)都是由點(diǎn)、線、多邊形等基本圖原構(gòu)成。 GLfloat m_s[3], m_t[3]。 gluPerspective(45,ratio,1,1000)。 ②初始化創(chuàng)建 OpenGL RC: hrc = wglCreateContext(m_pDCGetSafeHdc())。 int pixelformat。刪除對(duì)話框中的靜態(tài)文本,調(diào)整控件的位置; ③添加 OpenGL 開發(fā) 庫文件到項(xiàng)目 在編譯程序的時(shí)候選擇 Project|Setting 菜單,在 Link 標(biāo)簽中的 Object/library modules 編輯框中輸入“ , , , ”; ④創(chuàng)建新類,添加消息映射。如果是多文檔應(yīng)用程序,文檔模板使用 CMultiDocTemplae,主框架窗口從 CMdiFarmeWnd 派生,它包含工具條、狀態(tài)欄和文檔框架窗口。視窗口通過文檔對(duì)象來訪問和更新數(shù)據(jù)。對(duì)這些類或者對(duì)象解釋如下。 MFC 是 C++類庫,程序員就是通過使用、繼承和擴(kuò)展適當(dāng)?shù)念悂韺?shí)現(xiàn)特定的目的。 為了支持對(duì)應(yīng)用程序概念的封裝, MFC 內(nèi)部必須作大量的工作。 MFC 編程框架將在適當(dāng)?shù)臅r(shí)候、適當(dāng)?shù)牡胤絹碚{(diào)用程序的代碼。 程序員將結(jié)合自己的實(shí)際,從適當(dāng)?shù)?MFC 類中派生出自己的類,實(shí)現(xiàn)特定的功能,達(dá)到自己的編程目的。這些類中,最重要的類是 CObject 和 CCmdTarget。 ( 2)對(duì)應(yīng)用程序概念的封裝 使用 SDK 編寫 Windows 應(yīng)用程序時(shí),總要定義窗口過程,登記 Windows Class,創(chuàng)建窗口,等等。 的特點(diǎn) MFC (Microsoft Foundation Class Library)中的各種類結(jié)合起來構(gòu)成了一個(gè)應(yīng)用程序框架,它的目的就是讓程序員在此基礎(chǔ)上來建立 Windows 下的應(yīng)用程序,這是一種相對(duì) SDK 來說更為簡單的方法。 光柵化 光柵化是將幾何物體和像素?cái)?shù)據(jù)轉(zhuǎn)換成片斷的轉(zhuǎn)換器。然后這些結(jié)果將被打包成適當(dāng)?shù)母袷街匦路祷氐较到y(tǒng)內(nèi)存的一個(gè)數(shù)組中。假如淘汰功能是打開的,且是多邊形元素,它有可能通過淘汰監(jiān)測(cè)而被抑制??臻g坐標(biāo)是從 3D 世界上的一個(gè)點(diǎn)映射到你屏幕上的一個(gè)點(diǎn)。(如果要將數(shù)據(jù)保留論文) 6 在顯示列表中,就要馬上處理這些數(shù)據(jù),這就是立即模式)。 Khronos旗下的 OpenGL ARB(Architecture Review Board)工作組推出了 GLSL Language(OpenGL 著色語言 )的升級(jí)版,以及在 ,可以讓開發(fā)者在開發(fā)新程序時(shí)能夠在使用流水線內(nèi)核特性或兼容性特性之間做出選擇,其中兼容性特性會(huì)提供與舊版 OpenGL 之間的兼容性。同時(shí), ,例如頂點(diǎn)矩陣 對(duì)象,全幀緩存對(duì)象功能, 32bit 浮點(diǎn)紋理和渲染緩存,基于阻塞隊(duì)列的條件渲染,緊湊行半浮點(diǎn)頂點(diǎn)和像素?cái)?shù)據(jù),四個(gè)新壓縮機(jī)制等等。這樣,不但許多支持 OpenGL 的電腦 3D 游戲得到廣泛應(yīng)用,而且許多在 3D 圖形設(shè)計(jì)軟件也可以運(yùn)用支持 OpenGL 標(biāo)準(zhǔn)的 3D 加速卡,大大提高其 3D 圖形的處理速度。其中包括改進(jìn)打印機(jī)支持,在增強(qiáng)元文件中包含 OpenGL 的調(diào)用,頂點(diǎn)數(shù)組的新特性,提高頂點(diǎn)位置、法線、顏色、色彩指數(shù)、紋理坐標(biāo)、多邊形邊緣標(biāo)識(shí)的傳輸速度,引入了新的紋理特性等等。 OpenGL的英文全稱是“ Open Graphics Library”,顧名思義, OpenGL 便是“開放的圖形程序接口”。在旋轉(zhuǎn)函數(shù)中需指定經(jīng)過坐標(biāo)系原點(diǎn)的旋轉(zhuǎn)軸的角度和方向。 在系統(tǒng)集成上,國外具有較好的經(jīng)驗(yàn)積累,可以進(jìn)行多種條件下的綜合集成,而國內(nèi)在飛行訓(xùn)練系統(tǒng)方面,還處于嘗試階段,主要的產(chǎn)品還依靠國外的系統(tǒng),主要系統(tǒng)的集成化程度不 高。 作為飛行模擬器核心的仿真計(jì)算機(jī)系統(tǒng),在經(jīng)歷了三次變革浪潮后,已進(jìn)入全數(shù)字實(shí)時(shí)仿真階段,不僅有很寬譜型的仿真計(jì)算機(jī)體制結(jié)構(gòu)可供人們選擇,而且高性能價(jià)格比的超級(jí)實(shí)時(shí)工作站已加
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1