亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VRML及JavaScript的氣墊導(dǎo)軌上交互式三維虛擬實(shí)驗(yàn)

        2012-01-26 05:45:18吳億維王彥春李學(xué)慧
        物理實(shí)驗(yàn) 2012年6期
        關(guān)鍵詞:滑塊語(yǔ)句虛擬現(xiàn)實(shí)

        吳 迪,吳億維,劉 軍,徐 朋,王彥春,李學(xué)慧

        (1.大連大學(xué) 物理科學(xué)與技術(shù)學(xué)院,遼寧 大連116622;2.東北大學(xué) 機(jī)械工程與自動(dòng)化學(xué)院,遼寧 沈陽(yáng)110819)

        1 引 言

        目前許多學(xué)校設(shè)立了大學(xué)物理實(shí)驗(yàn)網(wǎng)站,學(xué)生可以利用業(yè)余時(shí)間登陸網(wǎng)站學(xué)習(xí)實(shí)驗(yàn)原理、操作.但問(wèn)題是目前的網(wǎng)站多半是文字?jǐn)⑹黾由蟽x器圖片展示,或有動(dòng)畫(huà)描述實(shí)驗(yàn)過(guò)程,而這一過(guò)程也是事先由程序編制者設(shè)定好的,只能按照一定的路線執(zhí)行,與實(shí)際實(shí)驗(yàn)相差甚遠(yuǎn).

        虛擬現(xiàn)實(shí)(virtual reality)是計(jì)算機(jī)模擬的三維環(huán)境,是一種可以創(chuàng)建和體驗(yàn)虛擬世界的計(jì)算機(jī)系統(tǒng).虛擬環(huán)境是由計(jì)算機(jī)生成的,用戶可以通過(guò)計(jì)算機(jī)進(jìn)入這個(gè)環(huán)境并能操縱系統(tǒng)中的對(duì)象并與之交互[1-3].VRML是第二代 Web上的關(guān)鍵技術(shù),是一種三維場(chǎng)景的描述性語(yǔ)言,也是在Internet網(wǎng)上實(shí)現(xiàn)虛擬現(xiàn)實(shí)的關(guān)鍵性技術(shù)[4-8].在Internet上傳輸很少的數(shù)據(jù),就可以在Web上實(shí)現(xiàn)三維虛擬場(chǎng)景瀏覽功能,克服了一般三維模擬軟件的缺點(diǎn).因而采用VRML開(kāi)發(fā)三維虛擬實(shí)驗(yàn)應(yīng)是解決這些問(wèn)題的一種較好的方法[9-11].首先虛擬現(xiàn)實(shí)是三維的、立體的,是符合人們?nèi)粘I盍?xí)慣的,學(xué)生可沉浸在實(shí)驗(yàn)之中;其次虛擬環(huán)境中學(xué)生不是被動(dòng)地感受,而是可以通過(guò)自己的活動(dòng)改變感受的內(nèi)容.采用VRML技術(shù)開(kāi)發(fā)的三維虛擬現(xiàn)實(shí)實(shí)驗(yàn)可以不受時(shí)間和地域限制,學(xué)生或教師可以自由地、無(wú)顧慮地隨時(shí)進(jìn)入虛擬實(shí)驗(yàn)室操作儀器,而他只需在聯(lián)網(wǎng)的計(jì)算機(jī)瀏覽器上安裝 VRML插件,如Cosmoplayer,Cortona或Blaxxun Contact等任意一種就可以進(jìn)行各種實(shí)驗(yàn).顯然虛擬現(xiàn)實(shí)實(shí)驗(yàn)可以給學(xué)生更多的思考時(shí)間和空間,從實(shí)驗(yàn)儀器的構(gòu)造到使用方法,從原理到測(cè)試公式的創(chuàng)建,再到實(shí)驗(yàn)環(huán)境的搭建,完全由學(xué)生自行設(shè)計(jì)、組建.虛擬實(shí)驗(yàn)可以仿真現(xiàn)實(shí)實(shí)驗(yàn),提高學(xué)生學(xué)習(xí)興趣,增加學(xué)生分析問(wèn)題的時(shí)間和學(xué)習(xí)的時(shí)間,可以充分調(diào)動(dòng)其主觀能動(dòng)性.

        但目前所開(kāi)發(fā)的項(xiàng)目大多存在交互性弱、沉浸感不強(qiáng)等問(wèn)題.本文以氣墊導(dǎo)軌上的實(shí)驗(yàn)為例就虛擬實(shí)驗(yàn)中復(fù)雜運(yùn)動(dòng)的聯(lián)動(dòng)交互控制方法進(jìn)行了研究.VRML本身不能進(jìn)行復(fù)雜交互,因而對(duì)于儀器調(diào)整這種復(fù)雜交互操作就不能只通過(guò)VRML進(jìn)行.為了實(shí)現(xiàn)創(chuàng)建的虛擬空間本身與操作者之間的復(fù)雜交互,要利用虛擬空間與操作環(huán)境的特定應(yīng)用之間的接口來(lái)實(shí)現(xiàn)它與用戶之間的交互,筆者采用JavaScript編程實(shí)現(xiàn)這種功能[12-13],討論 VRML中 Script節(jié)點(diǎn)的應(yīng)用,最終建立了具備交互功能的三維虛擬牛頓第二定律的研究和簡(jiǎn)諧運(yùn)動(dòng)的研究實(shí)驗(yàn),較好地實(shí)現(xiàn)了復(fù)雜運(yùn)動(dòng)的交互操作與聯(lián)動(dòng)控制.

        2 聯(lián)動(dòng)控制原理

        虛擬場(chǎng)景的聯(lián)動(dòng)是通過(guò)節(jié)點(diǎn)來(lái)實(shí)現(xiàn)的.一個(gè)節(jié)點(diǎn)狀態(tài)的變化能引起另一個(gè)節(jié)點(diǎn)狀態(tài)的相應(yīng)變化.VRML中將狀態(tài)的變化記為一個(gè)“事件”,引起其他節(jié)點(diǎn)變化的節(jié)點(diǎn)發(fā)出“事件輸出”,發(fā)生變化的節(jié)點(diǎn)接受“事件輸入”.VRML提供了多種感知器節(jié)點(diǎn),如可接收鼠標(biāo)點(diǎn)擊形體的動(dòng)作并使程序發(fā)生相應(yīng)變化如動(dòng)畫(huà)、發(fā)出聲音、改變顏色等的TouchSensor節(jié)點(diǎn);可使鼠標(biāo)的移動(dòng)轉(zhuǎn)變成形體的繞坐標(biāo)軸旋轉(zhuǎn)運(yùn)動(dòng)的CylinderSensor節(jié)點(diǎn);可以檢測(cè)到觀察者接近的ProximitySensor節(jié)點(diǎn),利用它們可控制其他操作,如發(fā)出聲音,讓形體運(yùn)動(dòng)、讓形體顏色變化,等等;還有時(shí)間傳感器TimeSensor節(jié)點(diǎn)等.

        VRML空間中各節(jié)點(diǎn)間的數(shù)據(jù)交互可以實(shí)現(xiàn)控制場(chǎng)景中的物體產(chǎn)生一些簡(jiǎn)單行為的聯(lián)動(dòng)動(dòng)作:如打開(kāi)開(kāi)關(guān)時(shí)燈會(huì)發(fā)光,走近自動(dòng)門(mén)附近門(mén)會(huì)自動(dòng)打開(kāi),等等.通過(guò)路由及感知器節(jié)點(diǎn)基本上能夠?qū)崿F(xiàn)場(chǎng)景的簡(jiǎn)單聯(lián)動(dòng)交互.對(duì)于復(fù)雜的聯(lián)動(dòng)交互控制VRML采用Script節(jié)點(diǎn)來(lái)實(shí)現(xiàn)這種功能.Script節(jié)點(diǎn)中的域指定一段實(shí)現(xiàn)事件處理的JavaScript腳本,然后將程序計(jì)算返回的結(jié)果遞交給Script節(jié)點(diǎn)的輸出事件,再通過(guò)路由將該事件傳遞給場(chǎng)景中某對(duì)象的相關(guān)域,達(dá)到改變場(chǎng)景的目的,實(shí)現(xiàn)過(guò)程如圖1所示.

        圖1 VRML聯(lián)動(dòng)動(dòng)畫(huà)原理圖

        3 氣墊導(dǎo)軌上實(shí)驗(yàn)的交互控制功能實(shí)現(xiàn)

        大學(xué)物理實(shí)驗(yàn)中氣墊導(dǎo)軌上的實(shí)驗(yàn)主要有牛頓第二定律的研究和簡(jiǎn)諧運(yùn)動(dòng)的研究.虛擬這2個(gè)實(shí)驗(yàn)主要是向用戶提供盡可能真實(shí)的仿真儀器,可以通過(guò) VRMLPad或vrbuild[14]直接建造三維模型,文件占用字節(jié)數(shù)較少,適宜在網(wǎng)上運(yùn)行;也可采用3DMAX或MAYA等軟件建造再轉(zhuǎn)換成VRML格式文件,但缺點(diǎn)是形成文件太大,影響網(wǎng)上運(yùn)行速度和運(yùn)行質(zhì)量.虛擬的簡(jiǎn)諧運(yùn)動(dòng)實(shí)驗(yàn)裝置如圖2所示,虛擬的牛頓第二定律實(shí)驗(yàn)裝置如圖3所示.用戶可以利用鼠標(biāo)拖動(dòng)光電桿將其擺放在合適的位置上以取得滑塊在相應(yīng)位置的速度,這個(gè)過(guò)程是通過(guò)人機(jī)交互來(lái)實(shí)現(xiàn)的.VRML允許用戶的行為能夠?qū)崟r(shí)作用于場(chǎng)景,場(chǎng)景節(jié)點(diǎn)通過(guò)EventIn接收事件,通過(guò)Event Out發(fā)出事件,通過(guò)路由將一個(gè)節(jié)點(diǎn)的事件出口和另一個(gè)節(jié)點(diǎn)的事件入口聯(lián)系成為事件體系使VRML具有動(dòng)態(tài)交互能力.但VRML語(yǔ)言本身所能完成的交互功能是有限的,要實(shí)現(xiàn)復(fù)雜聯(lián)動(dòng)交互功能還需要通過(guò)腳本語(yǔ)言來(lái)實(shí)現(xiàn),VRML提供了一個(gè)Script腳本節(jié)點(diǎn),通過(guò)該節(jié)點(diǎn)可以實(shí)現(xiàn)復(fù)雜交互操作和邏輯控制等功能.Script節(jié)點(diǎn)允許用戶創(chuàng)建自己的域(field)和事件,其中包括入事件(EventIn)和出事件(Event Out),再通過(guò)編寫(xiě)節(jié)點(diǎn)內(nèi)部程序來(lái)完成目標(biāo)功能,它支持多種腳本語(yǔ)言,如 VRMLScript,JavaScript,VBScript等.

        圖2 簡(jiǎn)諧運(yùn)動(dòng)研究

        圖3 牛頓第二定律研究

        3.1 滑塊簡(jiǎn)諧運(yùn)動(dòng)的實(shí)現(xiàn)

        需采用時(shí)間傳感器TimeSensor來(lái)執(zhí)行開(kāi)始、停止或者其他控制動(dòng)畫(huà)的動(dòng)作.

        3.1.1 定義時(shí)間傳感器

        格式如下:

        DEF TS TimeSensor{

        cycleInterval 1

        loop TRUE

        時(shí)間傳感器通過(guò)定時(shí)產(chǎn)生事件來(lái)表示時(shí)間的變化.

        3.1.2 事件驅(qū)動(dòng)

        場(chǎng)景需要一系列的變化數(shù)值而產(chǎn)生動(dòng)畫(huà),產(chǎn)生變化數(shù)值的節(jié)點(diǎn)可以是插補(bǔ)器節(jié)點(diǎn)或者Script節(jié)點(diǎn).域值通過(guò)Route語(yǔ)句傳送,由節(jié)點(diǎn)的入事件接收并處理.Script結(jié)點(diǎn)在VRML場(chǎng)景中不被顯示,其工作原理如圖1所示.Script結(jié)點(diǎn)可以由若干個(gè)EventIn,Event Out,包含腳本程序的url域等構(gòu)成.其中EventIn入事件接收來(lái)自其他節(jié)點(diǎn)的出事件,并交給對(duì)應(yīng)的同名函數(shù)進(jìn)行處理.url域中的處理函數(shù)計(jì)算新的值,并通過(guò)節(jié)點(diǎn)的Event Out發(fā)送出去.

        #### 實(shí)現(xiàn)滑塊的簡(jiǎn)諧運(yùn)動(dòng)功能的腳本程序 ####DEF Program Script{

        field SFFloat amplitude 1.25 #定義振幅

        field SFFloat twoPi 0.0 #定義常量

        ……

        url"javascript: #指明腳本

        function initialize()#初始化程序

        初始化滑塊位置等變量

        function set_start Time(start Time,event Time)#設(shè)置開(kāi)始振動(dòng)時(shí)間

        x1start Time=start Time;

        function set_fraction(fraction,time)#實(shí)現(xiàn)交互功能函數(shù)

        phase=-20.0;

        translation_changed[0]=-2+amplitude*Math.sin

        (twoPi*((phase/wavelength)-fraction))+0.05;

        translation_changed[1]=0;

        translation_changed[2]=2;

        ROUTE TS.fraction_changed TO Program.set_fraction

        Route語(yǔ)句把一個(gè)節(jié)點(diǎn)的出事件連接到另一個(gè)節(jié)點(diǎn)的入事件,從而建立起指定節(jié)點(diǎn)的域之間的通道.Route語(yǔ)句由出事件激活,當(dāng)發(fā)生1個(gè)出事件時(shí),包含該出事件的Route語(yǔ)句被調(diào)用,對(duì)應(yīng)的入事件就會(huì)接收到信息,同時(shí)可以對(duì)入事件做出相應(yīng)的處理.從而改變節(jié)點(diǎn)的狀態(tài),實(shí)現(xiàn)簡(jiǎn)諧運(yùn)動(dòng).

        3.2 光電桿的設(shè)置

        3.2.1 光電桿位置的動(dòng)態(tài)設(shè)置

        首先使用平面?zhèn)鞲衅鞴?jié)點(diǎn)PlaneSensor定義平面?zhèn)鞲衅鳎?/p>

        DEF gd Transform{

        children[

        DEF ts0 PlaneSensor{#其中一個(gè)光電桿

        minPosition -2.0.4

        maxPosition -1.1.4

        offset 0.01 0 1.72

        Inline{url"gd1.wrl"}

        其中minPosition和maxPosition用于設(shè)定物體在空間的移動(dòng)范圍.Inline為內(nèi)聯(lián)節(jié)點(diǎn),將另一wrl文件引入,這里gd1.wrl為光電門(mén)空間幾何結(jié)構(gòu)文件.

        其次定義路由語(yǔ)句實(shí)現(xiàn)交互功能:ROUTE ts0.translation_changed TO gd.translation實(shí)驗(yàn)中只要用鼠標(biāo)拖動(dòng)光電桿即可在約束的范圍內(nèi)調(diào)整其位置.

        3.2.2 光電桿位置的獲得

        將光電桿拖動(dòng)到某一位置后,要想知道滑塊運(yùn)動(dòng)到此位置時(shí)的速度就需要定量給出光電桿被拖動(dòng)后的確切位置,通過(guò)下述方法實(shí)現(xiàn):

        function set_fra0(trackPoint_changed,timeStamp){

        xpointer1[0]=trackPoint_changed[0];

        ROUTE ts0.track Point_changed TO Program.set_fra0

        通過(guò)路由語(yǔ)句將其中1個(gè)拖動(dòng)后的光電門(mén)位置賦給變量xpointer1.

        3.3 滑塊運(yùn)行速度的確定

        與滑塊一起運(yùn)動(dòng)的擋光片上設(shè)有具有一定間隔的2個(gè)探針,與滑塊一起作簡(jiǎn)諧運(yùn)動(dòng),當(dāng)其中每個(gè)探針經(jīng)過(guò)光電門(mén)時(shí)記錄相應(yīng)的時(shí)間,利用二者的時(shí)間差值和2個(gè)探針間距即可計(jì)算出滑塊經(jīng)過(guò)光電門(mén)時(shí)的速度.

        在function set_fraction(fraction,time)函數(shù)中采用語(yǔ)句timexs1=time-x1start Time取得運(yùn)行時(shí)間,在下面函數(shù)中記錄滑塊探針經(jīng)過(guò)光電門(mén)時(shí)的時(shí)間.

        function set_check1(time1,timeStamp){

        if (Math.a(chǎn)bs(translation_changedpointer1[0]-

        xpointer1[0])<=0.01)

        t11=timexs1;

        if (Math.a(chǎn)bs(translation_changedpointer2[0]-

        xpointer1[0])<=0.01)

        t12=timexs1;

        deltt1=t12-t11;

        v1=0.6/Math.a(chǎn)bs(deltt1);#計(jì)算速度

        lblOut.set_string[0]=′Rightv1′+v1;#送顯

        3.4 實(shí)驗(yàn)數(shù)據(jù)顯示問(wèn)題

        采用廣告版顯示運(yùn)行數(shù)據(jù).

        Billboard{

        geometry DEF output Text{

        string""

        fontStyle FontStyle{

        size.3

        }}}

        在Script節(jié)點(diǎn)中采用field SFNode lblOut USE output 和 lbl Out.set_string[0]=′Rightv1:′+v1將數(shù)據(jù)送到顯示屏顯示,實(shí)驗(yàn)運(yùn)行結(jié)果如圖4所示.

        圖4 實(shí)驗(yàn)運(yùn)行圖

        4 結(jié)束語(yǔ)

        復(fù)雜運(yùn)動(dòng)的聯(lián)動(dòng)交互控制必須借助于功能強(qiáng)大的高級(jí)語(yǔ)言來(lái)實(shí)現(xiàn),以彌補(bǔ)VRML本身如邏輯判斷、精確場(chǎng)景控制等的不足.本文通過(guò)使用VRML的Script節(jié)點(diǎn)編程著重研究了基于VRML技術(shù)的虛擬實(shí)驗(yàn)聯(lián)動(dòng)動(dòng)畫(huà)技術(shù),設(shè)計(jì)了具有聯(lián)動(dòng)交互控制功能的氣墊導(dǎo)軌上的實(shí)驗(yàn),為傳統(tǒng)的教學(xué)注入了新的活力.可以預(yù)見(jiàn)VRML網(wǎng)絡(luò)虛擬技術(shù)在整個(gè)實(shí)驗(yàn)教學(xué)、產(chǎn)品虛擬設(shè)計(jì)等方面有著廣泛的應(yīng)用前景.

        [1] 章天金,馬志軍,江娟,等.三維動(dòng)畫(huà)技術(shù)在固體物理學(xué)教學(xué)中的應(yīng)用[J].沈陽(yáng)師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2007,25(4):454-456.

        [2] 孟艷,傅鋼善,常鑫.VRML中的交互機(jī)理與實(shí)現(xiàn)研究[J].電子科技,2009,22(6):40-44.

        [3] 曹詠弘,范榮強(qiáng),范錦彪,等.基于虛擬現(xiàn)實(shí)的彈丸時(shí)空位置再現(xiàn)技術(shù)研究[J].彈箭與制導(dǎo)學(xué)報(bào),2010,30(1):91-94.

        [4] 黃文麗,盧碧紅,楊志剛,等.VRML語(yǔ)言入門(mén)與應(yīng)用[M].北京:中國(guó)鐵道出版社,2003.

        [5] 吳北新.虛擬現(xiàn)實(shí)建模語(yǔ)言VRML[M].北京:高等教育出版社,2004.

        [6] 陸昌輝.VRML入門(mén)與提高[M].北京:北京大學(xué)出版社,2003:201-202.

        [7] Web3D Consortium.Virtual Reality Modeling Language [DB/OL]. (2003-12-16).http://www.web3d.org/x3d/specifications/vrml.

        [8] Aereal Inc.VRML 2.0 [DB/OL].[2012-03-10].http://www.vrmlsite.com.

        [9] 顧冬華,王俊杰,楊立.虛擬現(xiàn)實(shí)技術(shù)應(yīng)用于電工實(shí)驗(yàn)課教學(xué)的嘗試[J].中國(guó)現(xiàn)代教育裝備,2010(13):55-56,67.

        [10] 余東先,杜紀(jì)霞.基于VRML-JAVA遠(yuǎn)程虛擬教學(xué)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].河南科學(xué),2010,28(5):600-604.

        [11] Duan X Y,Jiang P.Exploration to virtual reality 3D key techniques based on cosmo browser plug-in[J].International Journal of Digital Content Technology and its Applications,2011,5(6):391-402.

        [12] 王昊鵬,趙凱.VRML基于高程格網(wǎng)節(jié)點(diǎn)的復(fù)雜造型研究[J].微計(jì)算機(jī)信息,2006,22(19):211-212,144.

        [13] 王建中,李定國(guó),張家昌,等.基于VRML的工程熱物理虛擬實(shí)驗(yàn)教學(xué)系統(tǒng)[J].實(shí)驗(yàn)室研究與探索,2006,25(12):1530-1532.

        [14] Ligos Corporation.V·RealmTM.Builder User’s Guide and Reference[DB/OL].[2010-02-10].http://www.few.vu.nl/~eliens/documents/vrml/V-Realm.

        猜你喜歡
        滑塊語(yǔ)句虛擬現(xiàn)實(shí)
        重點(diǎn):語(yǔ)句銜接
        精彩語(yǔ)句
        風(fēng)口上的虛擬現(xiàn)實(shí)
        商周刊(2017年24期)2017-02-02 01:42:55
        虛擬現(xiàn)實(shí)技術(shù)向科幻小說(shuō)借靈感
        海外星云(2016年7期)2016-12-01 04:18:00
        HTC斥資千萬(wàn)美元入股虛擬現(xiàn)實(shí)設(shè)備商WEVR
        前模滑塊注射模設(shè)計(jì)
        斜滑塊內(nèi)抽芯塑件的注射模具設(shè)計(jì)
        河南科技(2015年2期)2015-02-27 14:20:28
        如何搞定語(yǔ)句銜接題
        滑塊分揀系統(tǒng)在我國(guó)煙草行業(yè)中的應(yīng)用
        河南科技(2014年3期)2014-02-27 14:05:55
        淺談虛擬現(xiàn)實(shí)
        中文字幕乱码熟妇五十中出| 日本熟妇高潮爽视频在线观看| 午夜日本理论片最新片| 日韩av水蜜桃一区二区三区| 国产毛片av最新视频| 国产熟女内射oooo| 少妇人妻偷人精品视蜜桃| 亚洲熟女乱综合一区二区| 区久久aaa片69亚洲| 欧洲国产精品无码专区影院| 97久久久一区二区少妇| 美女丝袜美腿玉足视频| 97精品人妻一区二区三区蜜桃| 蜜臀久久99精品久久久久久| 屁屁影院ccyy备用地址| 大地资源网最新在线播放| 久久久2019精品视频中文字幕| 国产色第一区不卡高清| 亚洲av无码乱码精品国产| 午夜成人鲁丝片午夜精品| 亚洲国产无套无码av电影| 久草热这里只有精品在线| 久久青青草原亚洲av| 青青草视频在线观看绿色| 人人超碰人人爱超碰国产| 国产精品自在线拍国产手机版| 最新精品国偷自产在线婷婷| 欧美精品aaa久久久影院| 人妻少妇偷人精品久久人妻| 极品av一区二区三区| 成年女人黄小视频| 欧美午夜一区二区福利视频| 亚洲女同一区二区久久| 国产国语一级免费黄片| 国产人妻熟女呻吟在线观看| 人人妻人人狠人人爽| 成年男女免费视频网站| 韩国免费一级a一片在线| 亚洲人成精品久久熟女| 亚洲av不卡无码国产| 欧美大黑帍在线播放|