999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-12-10 07:04:48程乃偉李想蔣波沱董宇佳黃輝
山東工業(yè)技術(shù) 2015年24期

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

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

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

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

1 引言

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

2 火災(zāi)應(yīng)急救援場(chǎ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)建動(dò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ù)中指明新視圖的行列序號(hào),類名稱,新視圖的起始大小以及創(chuàng)建視圖的上下文指針。

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

2.2 視圖窗口中顯示Vega Prime的場(chǎng)景

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

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

2.3 場(chǎng)景的視角切換

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

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

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

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

其過(guò)程如下:(1)對(duì)觀察者目標(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對(duì)場(chǎng)景進(jìn)行刷新;(4)格式化相應(yīng)文本信息字符串,調(diào)用SetWindowText顯示文本信息。

3 總結(jié)

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

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

主站蜘蛛池模板: 99无码中文字幕视频| 久久国产热| 无码人中文字幕| 亚洲精品天堂在线观看| 在线a视频免费观看| 国产青榴视频| 欧美精品一区在线看| 亚洲国产理论片在线播放| 九九久久99精品| 成人在线欧美| 婷婷亚洲最大| 欧美在线伊人| 亚洲天堂伊人| 国产屁屁影院| 免费午夜无码18禁无码影院| 成人欧美在线观看| 国产精品尤物铁牛tv | 国产熟睡乱子伦视频网站| 国产综合亚洲欧洲区精品无码| 亚洲成网777777国产精品| 男女性色大片免费网站| 四虎免费视频网站| 免费毛片a| 国产农村1级毛片| 六月婷婷激情综合| 中文字幕av无码不卡免费| 亚洲天堂成人在线观看| 日韩麻豆小视频| 天堂中文在线资源| 欧美在线伊人| 97精品国产高清久久久久蜜芽| 精品无码一区二区三区在线视频| 精品久久久久无码| 成年人视频一区二区| 丁香亚洲综合五月天婷婷| a级毛片一区二区免费视频| 国产凹凸视频在线观看| 免费a在线观看播放| 欧美黄网站免费观看| 91九色视频网| 亚洲人成色在线观看| 精品国产成人高清在线| 2022国产91精品久久久久久| 最新国语自产精品视频在| 欧美综合激情| 91麻豆精品视频| 国产三区二区| 少妇精品网站| 亚洲天堂区| 日韩午夜福利在线观看| 污视频日本| 日韩午夜福利在线观看| 久草视频精品| 国产情精品嫩草影院88av| 国产成人精品视频一区二区电影| 国产在线一二三区| 亚洲专区一区二区在线观看| 亚洲黄色激情网站| 一级看片免费视频| 99草精品视频| 亚洲精品卡2卡3卡4卡5卡区| 色综合综合网| 国模视频一区二区| 欧美日韩国产在线人成app| 无码精品国产VA在线观看DVD| 国产精品午夜电影| 日本一区中文字幕最新在线| 国产精品jizz在线观看软件| 999福利激情视频| 久久香蕉国产线看观看亚洲片| 亚洲精品va| h视频在线观看网站| 国产在线专区| 国产视频你懂得| 制服丝袜亚洲| 国产欧美一区二区三区视频在线观看| 久久精品国产国语对白| 婷婷色丁香综合激情| 日韩无码视频播放| 亚洲色婷婷一区二区| 亚洲码一区二区三区| 热久久综合这里只有精品电影|