汽車仿真軟件v35設(shè)計(jì)_第1頁(yè)
汽車仿真軟件v35設(shè)計(jì)_第2頁(yè)
汽車仿真軟件v35設(shè)計(jì)_第3頁(yè)
汽車仿真軟件v35設(shè)計(jì)_第4頁(yè)
汽車仿真軟件v35設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、汽車3.5概要設(shè)計(jì)1. 引言主要是對(duì)整體架構(gòu)的一些描述,便于交流軟件的設(shè)計(jì)思路2. 總體設(shè)計(jì)2.1. 需求規(guī)定1. 仿真教學(xué)·原理動(dòng)畫(flash、avi)·系統(tǒng)電路(多種儀表的測(cè)量)·三維結(jié)構(gòu)2. 實(shí)訓(xùn)練習(xí)·單項(xiàng)選擇題·多項(xiàng)選擇題·操作維護(hù)題·拆裝題·記錄及回放(操作錯(cuò)誤與操作過(guò)程)3. 測(cè)驗(yàn)考核·上面2里的內(nèi)容·組卷,出卷,自動(dòng)評(píng)分2.2. 運(yùn)行環(huán)境硬件:Intel P4 1.2G以上、32M顯存以上顯卡軟件:Windows 2000 以上2.3. 基本設(shè)計(jì)概念·基于Windows

2、系統(tǒng),Visual C+2005,OpenGL1.2開發(fā)·快速的定制、添加各種教學(xué)頁(yè)面·快速的定制、添加各種題目頁(yè)面·多種車型發(fā)布控制;素材庫(kù)、題材庫(kù)可自定義組織內(nèi)容2.4. 結(jié)構(gòu)·主模塊:頁(yè)面的創(chuàng)建管理;遠(yuǎn)程的控制·基礎(chǔ)模塊:一些基礎(chǔ)類;資源管理系統(tǒng)·界面控件:定制的界面控件·儀表:測(cè)量?jī)x表的實(shí)現(xiàn)·電路:電路數(shù)據(jù)與邏輯·界面實(shí)現(xiàn):各種界面的實(shí)現(xiàn)及對(duì)頁(yè)面編輯、添加的支持·三維模塊:三維對(duì)象的創(chuàng)建、數(shù)據(jù)的管理·拆裝模塊:支持拆裝題的編輯、添加2.4.1. 主框架A主框架主要負(fù)責(zé)實(shí)現(xiàn)頁(yè)面的

3、創(chuàng)建與管理以及程序運(yùn)行模式的控制。B由代表應(yīng)用程序的“ArApp”負(fù)責(zé)程序運(yùn)行模式的控制。·普通模式下,不做任何處理;·教師授課模式下,啟動(dòng)定時(shí)器,記錄當(dāng)前數(shù)據(jù)并通過(guò)遠(yuǎn)程模塊發(fā)送出去;·學(xué)生受控模式下,過(guò)濾鼠標(biāo)鍵盤的操作,接收遠(yuǎn)程模塊發(fā)送來(lái)的數(shù)據(jù),保持與教師控制端一致。C由代表主框架窗口的“ArMainFrame”負(fù)責(zé)頁(yè)面的創(chuàng)建與切換管理。·由頁(yè)面工廠統(tǒng)一管理并提供各種頁(yè)面的創(chuàng)建參數(shù)類;·“ArMainFrame”根據(jù)創(chuàng)建參數(shù)類創(chuàng)建出新頁(yè)面,并負(fù)責(zé)新舊頁(yè)面的切換;·頁(yè)面池負(fù)責(zé)記錄創(chuàng)建參數(shù)類及頁(yè)面快照,用以實(shí)現(xiàn)返回上一個(gè)頁(yè)面及頁(yè)面狀態(tài)的

4、恢復(fù);頁(yè)面創(chuàng)建管理2.4.2. 一般界面架構(gòu)A不同種類的界面有不同的實(shí)現(xiàn)。具體的設(shè)計(jì)在詳細(xì)設(shè)計(jì)里體現(xiàn)。B基本思路都是:多種視圖元素通過(guò)控制器訪問數(shù)據(jù)對(duì)象,數(shù)據(jù)的變化通過(guò)觀察者接口更新相關(guān)視圖元素。C幾種基礎(chǔ)的經(jīng)常使用的頁(yè)面提供編輯器,以供外部擴(kuò)充。簡(jiǎn)單頁(yè)面 2.4.3. 基礎(chǔ)資源管理A” ArCarResManagerCL”封裝對(duì)底層文件的訪問,使得程序?qū)ζ胀ㄎ募?、流文件、甚至壓縮文件都能用一種方式訪問。這樣在調(diào)試的時(shí)候,可以使用易于查看的文本文件,軟件發(fā)布的時(shí)候可以根據(jù)需要,將某些文件進(jìn)行打包甚至壓縮。這時(shí)不需要改動(dòng)代碼,只要配置抽象文檔系統(tǒng)即可。B老的調(diào)用方式:調(diào)用GetResPackM(

5、const CString& sPackPath)得到一個(gè)ArIResourceCL接口,然后將實(shí)現(xiàn)了ArIResPersistCL接口的客戶類傳給ArIResourceCL,底層的ArPackedResLibCL反調(diào)LoadFromStreamM(IStream *pStm)函數(shù),將數(shù)據(jù)流交給客戶類使用。C考慮新的調(diào)用方式:直接從ArCarResManagerCL上獲取數(shù)據(jù)流IStreamPtr使用。·詳細(xì)接口函數(shù)聲明class CarBase_DllExp CrCarResManagerCL : public CrIResManagerCLpublic: / 根據(jù)包路徑獲

6、取數(shù)據(jù)包接口。sPackPath是資源包路徑,不限制必須是DLL名 ArIResourceCL* GetResPackM( const CString& sPackPath ); / 給目標(biāo)對(duì)象加載數(shù)據(jù)。sResName是安裝目錄內(nèi)的路徑,更靈活(無(wú)需關(guān)心屬于哪個(gè)DLL數(shù)據(jù)包) BOOL LoadResM( ArIResPersistCL * pResObj , const CString& sResFile ) ; / (新做法) 直接獲取資源數(shù)據(jù)流。sResName:安裝目錄內(nèi)的路徑(無(wú)需關(guān)心屬于哪個(gè)數(shù)據(jù)包) / 然后直接調(diào)用IStream:Read()讀取數(shù)據(jù)。*注意:不

7、能用寫入類的函數(shù)* IStreamPtr GetResStreamM( const CString& sResFile); Void SetCurDIrM( const CString& sResName ); CString GetCurDIrM(); ·外部文件組織我們軟件的首頁(yè)會(huì)將所有的頁(yè)面(結(jié)構(gòu)/原理、題目、知識(shí)點(diǎn))都列出來(lái),用戶點(diǎn)擊后進(jìn)入相應(yīng)的窗口。因此有頁(yè)面類型與頁(yè)面ID兩個(gè)概念:如:電路頁(yè)面,知識(shí)點(diǎn)頁(yè)面,拆裝頁(yè)面都是頁(yè)面類型。點(diǎn)火系電路頁(yè)面,起動(dòng)系電路頁(yè)面則是頁(yè)面ID。·具體到數(shù)據(jù)組織的時(shí)候:1. 頁(yè)面類型的數(shù)據(jù)放在“softframe”下:如

8、“拆裝窗口”類型相關(guān)的數(shù)據(jù),如底圖、按鈕、列表框圖等,統(tǒng)一放在“softframebackoutPG”下:如“電路窗口”類型相關(guān)的數(shù)據(jù),如底圖、按鈕、列表框圖等,統(tǒng)一放在“softframecircuitPG”下:2. 具體頁(yè)面(結(jié)構(gòu)/原理、題目、知識(shí)點(diǎn))的數(shù)據(jù),放在相應(yīng)“車型系統(tǒng)xxx”下如“氣缸蓋拆裝”這道題相關(guān)的數(shù)據(jù),如拆裝腳本、模型列表等則放在相應(yīng)“santanasimuenginexxx”下。至于多道題目共用的數(shù)據(jù),如模型(模型理想情況是可以與零部件庫(kù) Santanamediapart里共用),如不能就放在車型下(santanasimusbjModel)。再如“氧傳感器的檢測(cè)”是一道

9、電路題,此題目的初始化文件放在“Santanasimugasoxxx”下,但電路數(shù)據(jù)、電路圖是共用的,那就放在“Santanasimucircuit”下“xxx”一般是題號(hào),也可幾道題上再建一個(gè)文件夾。3. 電路數(shù)據(jù)庫(kù)不再是唯一的:從現(xiàn)在的情況看,有多個(gè)車型,并且電路的需求也不一樣,所以電路數(shù)據(jù)庫(kù)不是一個(gè),軟件里的電路數(shù)據(jù)類也不能是全局對(duì)象,而是要根據(jù)電路題目初始化不同的電路數(shù)據(jù)。4. 如何確定外部文件位置:頁(yè)面工廠根據(jù)頁(yè)面ID(題目ID)創(chuàng)建頁(yè)面的時(shí)候,首先確定使用的頁(yè)面類,然后根據(jù)需要傳入配置文件,配置文件里記錄要用的其他數(shù)據(jù)文件,用相對(duì)位置或絕對(duì)位置(bin之下)都可以。當(dāng)用“資源管理程

10、序”打開某個(gè)文件的時(shí)候,資源管理程序的“當(dāng)前目錄”就設(shè)置為此文件的目錄;也可以外部設(shè)置當(dāng)前目錄。在此之后就可以用相對(duì)路徑打開文件。使用相對(duì)路徑時(shí)候前面可以加“.”,來(lái)指向共用的數(shù)據(jù)。2.4.4. 電路與儀表A 先使用以前的做法和實(shí)現(xiàn)。BC2.4.5. 三維模塊A 公司產(chǎn)品的主要思路是虛擬仿真,三維功能是每一個(gè)軟件都必不可少的。個(gè)人覺得可以考慮做一個(gè)比較通用的、靈活的三維模塊,在不同的軟件里都可以拿來(lái)用,應(yīng)該可以提高整個(gè)公司的開發(fā)效率。B 考慮將三維模塊分成3部分:“場(chǎng)景組織”、“資源管理”、“三維渲染”C “場(chǎng)景管理”,描述了三維空間中有哪些內(nèi)容,以及它們是如何組織在一起的;D “資源管理”,

11、不管模型、紋理還是字體等一切對(duì)象,繪制它們都需要不同的資源?!百Y源管理”負(fù)責(zé)加載、重用、卸載這些資源。E “三維渲染”,三維空間中的東西最后將被渲染到屏幕上,這涉及到渲染管線、指定的渲染系統(tǒng)、渲染狀態(tài)等API對(duì)象等底層對(duì)象?!叭S渲染系統(tǒng)”提供對(duì)底層三維API的抽象,可以根據(jù)需要支持OpenGL或Direct3D。實(shí)際的零件結(jié)構(gòu)A 橫線上是抽象結(jié)構(gòu),橫線下是具體例子。B 部件相當(dāng)于樹列表上的節(jié)點(diǎn),有名稱,可以被單獨(dú)選取、隱藏;組合部件相當(dāng)于父節(jié)點(diǎn),可以展開,也可以收縮當(dāng)作一個(gè)整體來(lái)選取、隱藏;子部件相當(dāng)于子節(jié)點(diǎn)。C 子部件包含1n個(gè)零件,可單獨(dú)運(yùn)動(dòng)但不能被單獨(dú)選??;D 不同的零件可能使用同一個(gè)

12、模型數(shù)據(jù)。如汽缸蓋緊固螺栓下有8個(gè),每一個(gè)都能被單獨(dú)的拆裝,但它們都是由一個(gè)模型數(shù)據(jù)創(chuàng)建。設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu)A 橫線上的節(jié)點(diǎn)與實(shí)體由“場(chǎng)景管理”負(fù)責(zé)創(chuàng)建并管理;B 節(jié)點(diǎn)表示一個(gè)包或容器的概念,可以包含其他的子節(jié)點(diǎn)或?qū)嶓w;C 實(shí)體表示空間中的一個(gè)實(shí)實(shí)在在的物體,可以移動(dòng)、旋轉(zhuǎn)改變位置;D 橫線下的模型及相關(guān)數(shù)據(jù)由“資源管理”負(fù)責(zé)創(chuàng)建并管理;E 一個(gè)模型對(duì)應(yīng)一個(gè)數(shù)據(jù)文件,包含三角片、材質(zhì)等用于繪制的數(shù)據(jù),實(shí)現(xiàn)渲染、主結(jié)構(gòu)1根據(jù)配置文件初始化渲染系統(tǒng),可以選擇Direct3D或OpenGL;2創(chuàng)建場(chǎng)景并在場(chǎng)景中架設(shè)攝像機(jī);通過(guò)資源管理器創(chuàng)建物體并放置在場(chǎng)景中;3創(chuàng)建窗口、視口并與攝像機(jī)關(guān)聯(lián),一個(gè)視口上顯示一個(gè)攝像機(jī)能“看”到的物體;4控制器接收消息和命令,將其轉(zhuǎn)換成對(duì)場(chǎng)景和攝像機(jī)的控制;5刷新時(shí):窗口要求場(chǎng)景繪制它能看見的部分;場(chǎng)景將能見的物體交給渲染系統(tǒng)繪制;初始序列圖資源管理A 模型對(duì)象由ModelManager負(fù)責(zé)創(chuàng)建、管理及重用。例如多個(gè)位置的螺栓用一個(gè)螺栓模型數(shù)據(jù)。B 材質(zhì)由MaterialManager負(fù)責(zé)創(chuàng)建、管理及重用。例如不同的子網(wǎng)格使用同一種材質(zhì)。C 紋理貼圖由TextureManager負(fù)責(zé)創(chuàng)建、管理及重用。例如不同的零件使用同一種金屬紋理貼圖。D 主要的

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論