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

基于VRML及JavaScript的氣墊導軌上交互式三維虛擬實驗

2012-01-26 05:45:18吳億維王彥春李學慧
物理實驗 2012年6期
關鍵詞:功能實驗

吳 迪,吳億維,劉 軍,徐 朋,王彥春,李學慧

(1.大連大學 物理科學與技術學院,遼寧 大連116622;2.東北大學 機械工程與自動化學院,遼寧 沈陽110819)

1 引 言

目前許多學校設立了大學物理實驗網站,學生可以利用業余時間登陸網站學習實驗原理、操作.但問題是目前的網站多半是文字敘述加上儀器圖片展示,或有動畫描述實驗過程,而這一過程也是事先由程序編制者設定好的,只能按照一定的路線執行,與實際實驗相差甚遠.

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

但目前所開發的項目大多存在交互性弱、沉浸感不強等問題.本文以氣墊導軌上的實驗為例就虛擬實驗中復雜運動的聯動交互控制方法進行了研究.VRML本身不能進行復雜交互,因而對于儀器調整這種復雜交互操作就不能只通過VRML進行.為了實現創建的虛擬空間本身與操作者之間的復雜交互,要利用虛擬空間與操作環境的特定應用之間的接口來實現它與用戶之間的交互,筆者采用JavaScript編程實現這種功能[12-13],討論 VRML中 Script節點的應用,最終建立了具備交互功能的三維虛擬牛頓第二定律的研究和簡諧運動的研究實驗,較好地實現了復雜運動的交互操作與聯動控制.

2 聯動控制原理

虛擬場景的聯動是通過節點來實現的.一個節點狀態的變化能引起另一個節點狀態的相應變化.VRML中將狀態的變化記為一個“事件”,引起其他節點變化的節點發出“事件輸出”,發生變化的節點接受“事件輸入”.VRML提供了多種感知器節點,如可接收鼠標點擊形體的動作并使程序發生相應變化如動畫、發出聲音、改變顏色等的TouchSensor節點;可使鼠標的移動轉變成形體的繞坐標軸旋轉運動的CylinderSensor節點;可以檢測到觀察者接近的ProximitySensor節點,利用它們可控制其他操作,如發出聲音,讓形體運動、讓形體顏色變化,等等;還有時間傳感器TimeSensor節點等.

VRML空間中各節點間的數據交互可以實現控制場景中的物體產生一些簡單行為的聯動動作:如打開開關時燈會發光,走近自動門附近門會自動打開,等等.通過路由及感知器節點基本上能夠實現場景的簡單聯動交互.對于復雜的聯動交互控制VRML采用Script節點來實現這種功能.Script節點中的域指定一段實現事件處理的JavaScript腳本,然后將程序計算返回的結果遞交給Script節點的輸出事件,再通過路由將該事件傳遞給場景中某對象的相關域,達到改變場景的目的,實現過程如圖1所示.

圖1 VRML聯動動畫原理圖

3 氣墊導軌上實驗的交互控制功能實現

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

圖2 簡諧運動研究

圖3 牛頓第二定律研究

3.1 滑塊簡諧運動的實現

需采用時間傳感器TimeSensor來執行開始、停止或者其他控制動畫的動作.

3.1.1 定義時間傳感器

格式如下:

DEF TS TimeSensor{

cycleInterval 1

loop TRUE

時間傳感器通過定時產生事件來表示時間的變化.

3.1.2 事件驅動

場景需要一系列的變化數值而產生動畫,產生變化數值的節點可以是插補器節點或者Script節點.域值通過Route語句傳送,由節點的入事件接收并處理.Script結點在VRML場景中不被顯示,其工作原理如圖1所示.Script結點可以由若干個EventIn,Event Out,包含腳本程序的url域等構成.其中EventIn入事件接收來自其他節點的出事件,并交給對應的同名函數進行處理.url域中的處理函數計算新的值,并通過節點的Event Out發送出去.

#### 實現滑塊的簡諧運動功能的腳本程序 ####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)#設置開始振動時間

x1start Time=start Time;

function set_fraction(fraction,time)#實現交互功能函數

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語句把一個節點的出事件連接到另一個節點的入事件,從而建立起指定節點的域之間的通道.Route語句由出事件激活,當發生1個出事件時,包含該出事件的Route語句被調用,對應的入事件就會接收到信息,同時可以對入事件做出相應的處理.從而改變節點的狀態,實現簡諧運動.

3.2 光電桿的設置

3.2.1 光電桿位置的動態設置

首先使用平面傳感器節點PlaneSensor定義平面傳感器:

DEF gd Transform{

children[

DEF ts0 PlaneSensor{#其中一個光電桿

minPosition -2.0.4

maxPosition -1.1.4

offset 0.01 0 1.72

Inline{url"gd1.wrl"}

其中minPosition和maxPosition用于設定物體在空間的移動范圍.Inline為內聯節點,將另一wrl文件引入,這里gd1.wrl為光電門空間幾何結構文件.

其次定義路由語句實現交互功能:ROUTE ts0.translation_changed TO gd.translation實驗中只要用鼠標拖動光電桿即可在約束的范圍內調整其位置.

3.2.2 光電桿位置的獲得

將光電桿拖動到某一位置后,要想知道滑塊運動到此位置時的速度就需要定量給出光電桿被拖動后的確切位置,通過下述方法實現:

function set_fra0(trackPoint_changed,timeStamp){

xpointer1[0]=trackPoint_changed[0];

ROUTE ts0.track Point_changed TO Program.set_fra0

通過路由語句將其中1個拖動后的光電門位置賦給變量xpointer1.

3.3 滑塊運行速度的確定

與滑塊一起運動的擋光片上設有具有一定間隔的2個探針,與滑塊一起作簡諧運動,當其中每個探針經過光電門時記錄相應的時間,利用二者的時間差值和2個探針間距即可計算出滑塊經過光電門時的速度.

在function set_fraction(fraction,time)函數中采用語句timexs1=time-x1start Time取得運行時間,在下面函數中記錄滑塊探針經過光電門時的時間.

function set_check1(time1,timeStamp){

if (Math.abs(translation_changedpointer1[0]-

xpointer1[0])<=0.01)

t11=timexs1;

if (Math.abs(translation_changedpointer2[0]-

xpointer1[0])<=0.01)

t12=timexs1;

deltt1=t12-t11;

v1=0.6/Math.abs(deltt1);#計算速度

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

3.4 實驗數據顯示問題

采用廣告版顯示運行數據.

Billboard{

geometry DEF output Text{

string""

fontStyle FontStyle{

size.3

}}}

在Script節點中采用field SFNode lblOut USE output 和 lbl Out.set_string[0]=′Rightv1:′+v1將數據送到顯示屏顯示,實驗運行結果如圖4所示.

圖4 實驗運行圖

4 結束語

復雜運動的聯動交互控制必須借助于功能強大的高級語言來實現,以彌補VRML本身如邏輯判斷、精確場景控制等的不足.本文通過使用VRML的Script節點編程著重研究了基于VRML技術的虛擬實驗聯動動畫技術,設計了具有聯動交互控制功能的氣墊導軌上的實驗,為傳統的教學注入了新的活力.可以預見VRML網絡虛擬技術在整個實驗教學、產品虛擬設計等方面有著廣泛的應用前景.

[1] 章天金,馬志軍,江娟,等.三維動畫技術在固體物理學教學中的應用[J].沈陽師范大學學報(自然科學版),2007,25(4):454-456.

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

[3] 曹詠弘,范榮強,范錦彪,等.基于虛擬現實的彈丸時空位置再現技術研究[J].彈箭與制導學報,2010,30(1):91-94.

[4] 黃文麗,盧碧紅,楊志剛,等.VRML語言入門與應用[M].北京:中國鐵道出版社,2003.

[5] 吳北新.虛擬現實建模語言VRML[M].北京:高等教育出版社,2004.

[6] 陸昌輝.VRML入門與提高[M].北京:北京大學出版社,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] 顧冬華,王俊杰,楊立.虛擬現實技術應用于電工實驗課教學的嘗試[J].中國現代教育裝備,2010(13):55-56,67.

[10] 余東先,杜紀霞.基于VRML-JAVA遠程虛擬教學系統的設計與開發[J].河南科學,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基于高程格網節點的復雜造型研究[J].微計算機信息,2006,22(19):211-212,144.

[13] 王建中,李定國,張家昌,等.基于VRML的工程熱物理虛擬實驗教學系統[J].實驗室研究與探索,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.

猜你喜歡
功能實驗
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
記一次有趣的實驗
微型實驗里看“燃燒”
做個怪怪長實驗
關于非首都功能疏解的幾點思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 色婷婷色丁香| 色婷婷在线影院| 久久熟女AV| 欧美国产综合色视频| 亚洲成人一区二区| 亚洲精品桃花岛av在线| 日韩精品无码不卡无码| 中文字幕久久亚洲一区| 欧美一级黄色影院| 精品国产Av电影无码久久久 | 日本精品视频一区二区| 国产91无毒不卡在线观看| 国产精品私拍99pans大尺度| 国产91导航| 国产拍在线| 国产主播在线一区| 欧美翘臀一区二区三区| 国产第一页免费浮力影院| 欧美视频在线观看第一页| 久久国产精品麻豆系列| 欧美日韩精品在线播放| 美女免费精品高清毛片在线视| 国产91小视频| 真人免费一级毛片一区二区| 伊人久久久大香线蕉综合直播| 精品成人一区二区三区电影| 麻豆精品久久久久久久99蜜桃| 亚洲日韩AV无码一区二区三区人| 麻豆国产精品一二三在线观看| 一级片一区| 视频一区视频二区中文精品| 久久精品国产精品青草app| 亚洲有无码中文网| 欧美另类视频一区二区三区| 2021国产精品自产拍在线| 欧美成人综合视频| 就去吻亚洲精品国产欧美| 国产精品原创不卡在线| jizz亚洲高清在线观看| 美女被操黄色视频网站| 国产天天射| 午夜小视频在线| 思思热精品在线8| 伊人久热这里只有精品视频99| 8090午夜无码专区| www.99精品视频在线播放| 香蕉蕉亚亚洲aav综合| 国产无码网站在线观看| 欧美日在线观看| 有专无码视频| 午夜毛片免费看| 69av免费视频| 国产成人免费视频精品一区二区| 国产剧情无码视频在线观看| 日韩欧美高清视频| 久久精品人人做人人爽97| 国产一区亚洲一区| 精品自窥自偷在线看| 四虎影视无码永久免费观看| 中文字幕2区| 国产精品亚洲日韩AⅤ在线观看| 四虎国产精品永久一区| 亚洲欧洲日产国产无码AV| 欧美日韩精品综合在线一区| 中文字幕调教一区二区视频| 香蕉精品在线| 无遮挡一级毛片呦女视频| 亚洲欧美综合在线观看| 欧美日韩亚洲综合在线观看 | 中文字幕人妻无码系列第三区| 亚洲人成色77777在线观看| www.99精品视频在线播放| 国产美女丝袜高潮| 香蕉视频在线观看www| 国产屁屁影院| 国产中文一区二区苍井空| 国外欧美一区另类中文字幕| 特级aaaaaaaaa毛片免费视频| 久久久久亚洲AV成人网站软件| 亚洲欧美人成人让影院| 色吊丝av中文字幕| 激情乱人伦|