国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MFC的Vega Prime視角切換方法設(shè)計與實(shí)現(xiàn)

2015-12-10 07:04:48程乃偉李想蔣波沱董宇佳黃輝
山東工業(yè)技術(shù) 2015年24期
關(guān)鍵詞:應(yīng)急救援

程乃偉+李想+蔣波沱+董宇佳+黃輝

摘 要:采用基于Vega Prime的三維仿真技術(shù),結(jié)合MFC在單文檔程序框架下利用定時器的方式,通過實(shí)例模擬火災(zāi)現(xiàn)場,實(shí)現(xiàn)多視角的相互切換,并可應(yīng)用于進(jìn)一步的仿真模擬中,達(dá)到全方位觀測事故現(xiàn)場的目的。

關(guān)鍵詞:Vega Prime;視角切換;文檔視圖;應(yīng)急救援

DOI:10.16640/j.cnki.37-1222/t.2015.24.026

1 引言

隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,視景仿真模擬技術(shù)正與越來越多的技術(shù)領(lǐng)域相結(jié)合?;赩ega Prime的仿真模擬技術(shù)可實(shí)現(xiàn)對火災(zāi)現(xiàn)場應(yīng)急救援工作的再現(xiàn),有助于查明事故發(fā)生原因,找到事故的因果關(guān)系。本文利用Vega Prime仿真模擬技術(shù)在MFC單文檔框架下,實(shí)現(xiàn)界面上的多視角仿真的同步切換,再現(xiàn)火災(zāi)事故現(xiàn)場為事故調(diào)查分析提供清晰的畫面感。

2 火災(zāi)應(yīng)急救援場景模擬及視角切換的實(shí)現(xiàn)

2.1 MFC客戶區(qū)的視圖分割

用戶界面作為系統(tǒng)與用戶之間直接交互手段,可應(yīng)用MFC實(shí)現(xiàn)可視化界面。窗口視圖分割可以使程序的功能分區(qū)更加明確,在MFC中提供了CSplitterWnd類,可以方便地實(shí)現(xiàn)窗口分割。其有兩種使用方法,一是調(diào)用Create成員函數(shù)可創(chuàng)建動態(tài)分割窗口,另一種是調(diào)用CreateStatic成員函數(shù)進(jìn)行創(chuàng)建靜態(tài)的分割窗口。

由于本例中只需創(chuàng)建靜態(tài)分割窗口即可,所以需要調(diào)用CreateView類為靜態(tài)分割的窗口創(chuàng)建視圖,并在參數(shù)中指明新視圖的行列序號,類名稱,新視圖的起始大小以及創(chuàng)建視圖的上下文指針。

在分割視圖前需對整個程序界面進(jìn)行初步設(shè)計,分為VP場景顯示區(qū)、信息顯示區(qū)、功能按鍵區(qū)。其具體過程為:(1)在CMainFrame中定義CSplitterWnd對象(2)重載框架類虛函數(shù)OnCreateClient(3)在OnCreateClient中用CSplitterWnd對象調(diào)用CreatStatic將窗口分割為2行1列,再調(diào)用CreatView創(chuàng)建CMyVPView類和CMyEditView類分別用于顯示場景和文字狀態(tài)顯示。(4)創(chuàng)建一個對話框資源,設(shè)置其風(fēng)格為Child,無邊框,為其添加新類,選擇基類為CDialogBar,并在CMainFrame中添加變量,調(diào)用Create函數(shù),這樣就已將對話框以工具條的形式鑲嵌在框架上。

2.2 視圖窗口中顯示Vega Prime的場景

Vega Prime 應(yīng)用程序的基本運(yùn)行流程是:初始化VP,定義ACF,配置ACF, 運(yùn)行幀循環(huán)以及最后退出幀循環(huán)?;贛FC的Vega Prime程序在對話框和單文檔內(nèi)均可實(shí)現(xiàn),其運(yùn)行方式即可基于線程,也可基于定時器。

本例中采用基于定時器的單文檔程序運(yùn)行Vega Prime。其過程為:(1)在CMyVPView類WM_CREATE消息響應(yīng)函數(shù)中對VP進(jìn)行初始化、設(shè)置ACF文件、加載ACF文件、設(shè)置父窗口、調(diào)用beginFrame/endFrame 打開Vega Prime 窗口、設(shè)置定時器用來更新場景。(2)在WM_TIMER消息響應(yīng)函數(shù)中運(yùn)行幀循環(huán),按設(shè)置的好的幀數(shù)更新VP場景。(3)在WM_SIZE響應(yīng)函數(shù)設(shè)置窗口大小,可動態(tài)調(diào)整。(4)重載虛函數(shù)OnActivateView設(shè)置VP窗口為輸入焦點(diǎn)(5)最后在CMyVPView類的析構(gòu)函數(shù)中關(guān)閉VP,退出幀循環(huán)。

2.3 場景的視角切換

Vega Prime中各類實(shí)例之間有著清晰的層次關(guān)系,根據(jù)實(shí)例樹圖可知其順序?yàn)椋汗艿纕pPipeline→窗口vpWindow→通道vpChannel→觀察者vpObserver→場景vpScene→對象vpObject→轉(zhuǎn)換vpTransform等。

在視角切換的過程中,關(guān)鍵環(huán)節(jié)為觀察者的設(shè)置,由于場景的通道配置與觀察者關(guān)系通常固定不變,對象與轉(zhuǎn)換間的關(guān)系也相對固定,因此,將動態(tài)配置觀察者的觀察目標(biāo)與觀察點(diǎn)成為了問題的關(guān)鍵。作為觀察者vpObserver目標(biāo)的不僅有對象vpObject,也可以是對象的轉(zhuǎn)換vpTransform,這就便于在觀察者以更佳的角度進(jìn)行觀測目標(biāo),對于個別對象將觀察者觀察點(diǎn)設(shè)置為其轉(zhuǎn)換坐標(biāo)既可以觀察其自身的狀態(tài)、動作,又可以觀察其對場景中其他對象、環(huán)境的影響。

本例設(shè)計一個通道為主觀察通道,三個副觀察通道,可隨時隨意將三個副觀察通道的場景載入到主觀察通道中,所以首先為VP的窗口分配了四個通道,分別為ambulanceChannel(AC)、towerChannel(TC)、firetruckChannel(FC)、mainChannel(MC)。其中AC作為救護(hù)車視角專用通道,TC作為塔高視角專用通道,F(xiàn)C作為消防車視角專用通道,MC作為切換視角的預(yù)留通道,可設(shè)置其默認(rèn)通道為TC。

然后為四個通道分別配置觀察者:ambulanceObserver(AO)、towerObserver(TO)、firetruckObserver(FO)、mainObserver(MO)。為實(shí)現(xiàn)通道顯示不同的場景只需對其觀察者進(jìn)行動態(tài)配置,由于AO、TO、FO在程序運(yùn)行中不做變化,所以只對MO進(jìn)行動態(tài)配置即可。在MO配置頁面中,可設(shè)置Look At Target和Look From Target來設(shè)置觀察者的目標(biāo)觀察物和觀察點(diǎn),同理在MFC程序可通過Button控件的響應(yīng)函數(shù)來動態(tài)設(shè)置MO的目標(biāo)觀察物和觀察點(diǎn)。

其過程如下:(1)對觀察者目標(biāo)指針、相關(guān)觀察物與觀察點(diǎn)進(jìn)行靜態(tài)化改造;(2)在相應(yīng)的控件響應(yīng)函數(shù)中,用觀察者指針調(diào)用setLookAt和setLookFrom并根據(jù)需求設(shè)置參數(shù);(3)用內(nèi)核實(shí)例調(diào)用beginFrame和endFrame對場景進(jìn)行刷新;(4)格式化相應(yīng)文本信息字符串,調(diào)用SetWindowText顯示文本信息。

3 總結(jié)

Vega Prime視角切換方法,可運(yùn)用于火災(zāi)現(xiàn)場應(yīng)急救援的模擬過程及各種視景仿真開發(fā)的基礎(chǔ)功能。基于MFC的Vega Prime程序的操作更加靈活,一定程度上簡化了用戶的操作,本文范例程序具有良好通用性、實(shí)用性和可擴(kuò)展性,為后續(xù)開發(fā)提供支持。

作者簡介:程乃偉(1960-),男,遼寧沈陽人,碩士,教授,碩士生導(dǎo)師,研究方向:信息化安全技術(shù)。endprint

猜你喜歡
應(yīng)急救援
危化品監(jiān)管 要抓住關(guān)鍵少數(shù)
法制與社會(2017年5期)2017-03-14 20:06:53
談煤礦應(yīng)急救援預(yù)案的編制與實(shí)踐
城市消防指揮中心如何更好發(fā)揮應(yīng)急救援中樞作用
科技資訊(2016年29期)2017-02-28 09:54:37
考慮災(zāi)民感知滿意度的突發(fā)事件應(yīng)急救援人員派遣模型
價值工程(2017年2期)2017-02-06 21:25:20
突發(fā)事件下應(yīng)急救援最短路徑問題的研究
武警院校應(yīng)急救援學(xué)科建設(shè)存在的問題及對策
人間(2016年24期)2016-11-23 16:46:30
基于物聯(lián)網(wǎng)的電梯應(yīng)急指揮系統(tǒng)
科技傳播(2016年13期)2016-08-04 22:00:29
人防通信在應(yīng)急救援中的作用
關(guān)于提升武警部隊(duì)?wèi)?yīng)急救援行動中網(wǎng)絡(luò)輿情應(yīng)對能力的幾點(diǎn)思考
基于ArcGISEngine的地震災(zāi)區(qū)無人機(jī)影像三維建模軟件開發(fā)
科技視界(2015年26期)2015-09-11 13:13:39
奉贤区| 宣恩县| 苍梧县| 元江| 南昌市| 涞源县| 乌恰县| 靖西县| 石河子市| 勃利县| 龙川县| 贵定县| 沁水县| 确山县| 临夏县| 多伦县| 鄂托克前旗| 南溪县| 库车县| 岳池县| 从化市| 潜山县| 黎城县| 科尔| 府谷县| 梁河县| 沁阳市| 永济市| 凤冈县| 蒙阴县| 连南| 舒城县| 刚察县| 海林市| 昌乐县| 崇左市| 黑龙江省| 长汀县| 海安县| 二连浩特市| 通化市|