版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、鞍山師范學(xué)院學(xué)報J ou rna l of A nshan N or m a l U n iversity2006208,8(4:59-62VR ML與JAVA在網(wǎng)絡(luò)課件中交互運用分析李國軍,鐘志強(鞍山師范學(xué)院物理系,遼寧鞍山114005摘要:VR ML與JAVA是制作網(wǎng)絡(luò)課件的新技術(shù),它們之間的信息交互是兩種技術(shù)聯(lián)合在課件制作中的關(guān)鍵.關(guān)鍵詞:VR ML;JAVA;E A I中圖分類號:G434文獻標(biāo)識碼:A文章篇號:100822441(20060420059204The Ana lysis of Apply i n g VR ML and JAVAto W eb Courseware I
2、 n teracti onL I Guo2jun,Z HONG Zhi2qiang(D epart m ent of Physics,A nshan N or m al U niversity,A nshan L iaoning114005,ChinaAbstract:Both V r m l and Java are ne w devel op ing technol ogy f or web course ware.It is interacti onthat is key t o res olving questi on.Key words:VR ML;Java;EA I虛擬現(xiàn)實建模語言
3、(V irtual Reality Modeling Language即VR ML和Java語言都是可執(zhí)行的代碼技術(shù),通過網(wǎng)絡(luò)傳輸?shù)闹皇且粋€很小的描述文件(指令性數(shù)據(jù)集,客戶端通過本地的VR ML瀏覽器、JA2 VA虛擬機交互地訪問這些文件并解釋執(zhí)行.將Java與VR ML結(jié)合,能夠很好地實現(xiàn)網(wǎng)絡(luò)多媒體課件技術(shù):使用VRML進行場景構(gòu)造,內(nèi)嵌用Java編寫的程序設(shè)計實現(xiàn)對象的編程行為.這使VR ML在網(wǎng)上創(chuàng)建充滿真實感的三維虛擬世界,為用戶提供一種自然的、身臨其境的體驗方式,包括交互性、動態(tài)效果、連續(xù)性及參與感,而這將是未來網(wǎng)絡(luò)教學(xué)的主要形式之一1.1VRML簡單交互VR ML簡單交互,即VR
4、ML空間中各節(jié)點間數(shù)據(jù)交互.VRML有統(tǒng)一的數(shù)據(jù)傳輸接口和完善的屬性集合和事件集合,可接收傳感器節(jié)點發(fā)送過來的數(shù)值,并根據(jù)所對應(yīng)的接口屬性域設(shè)置提取數(shù)據(jù)、改變自身的屬性值、觸發(fā)事件進而改變自己在空間中的位置、外型和顯示效果,還可以將處理后的數(shù)據(jù)送到輸出域,傳遞給其它模型節(jié)點.各節(jié)點通過接口域的相互路由(r oute t o實現(xiàn)數(shù)據(jù)傳輸,路由的映射關(guān)系自由,但接口域的數(shù)據(jù)規(guī)格必須嚴(yán)格一致.2VRML擴展交互VR ML本身交互機制是無法構(gòu)建一個大型多媒體課件的,因為VR ML本身不能完成普通程序設(shè)計收稿日期:2005-06-20作者簡介:李國軍(1968-,男,山東平度人,鞍山師范學(xué)院物理系高級實
5、驗師.06鞍山師范學(xué)院學(xué)報第8卷I nterface交互與外部編程接口E A I(E A I External Authoring I nterface交互.2.1腳本編程接口S A I交互S A I交互即使用事件機制和路由利用Scri p t節(jié)點實現(xiàn)VR ML與Java(或JavaScri p t的交互.首先,通過eventI n將事件傳至Scri p t節(jié)點中的腳本;其次,在Scri p t節(jié)點中的腳本中調(diào)用相應(yīng)的Java類(或JavaScri p t進行處理;最后,通過event O ut將結(jié)果送回到VR ML場景以實現(xiàn)動畫或交互.3 VR ML的Scri p t節(jié)點是一種控制傳感器和內(nèi)
6、插器的節(jié)點,通過它可以定義和改變場景中對象的外觀和行為.Scri p t節(jié)點的URL域可以包含一段JavaScri p t程序或者是鏈接的一個JavaClass.SCR I PT節(jié)點可放置在場景的任何地方,用DEF命名它,從而完成事件的刪除傳遞4.SCR I PT節(jié)點的字段是由用戶延伸的,到達這些字段的字段會自動移到和SCR I PT節(jié)點相關(guān)程序中.另外,SCR I PT節(jié)點也能夠通過編寫合適程序腳本,動態(tài)生成(改變?nèi)S造型并綁定合適的感應(yīng)器和內(nèi)插器5.然后,Java類開始工作,最先執(zhí)行的是initialize(方法:在initialize(方法中必須獲得Scri p t節(jié)點中eventI n
7、或field域的值,或者把java中的值返回給Scri p t中的event O ut域.Scri p t類提供的方法有:get2 Field(field Na me;getEventI n(eventI n Na me;getEvent O ut(event O ut N a me;作為參數(shù)的fieldNa me、eventI n2 Na me、event O ut N a me要與Scri p t節(jié)點中定義的名稱相符合,對應(yīng)的Field類的子類(vr m l.filed包與Scri p t節(jié)點中定義的各種Type類型一致.它提供get V alue(和set V alue(方法.最后,所有
8、事件處理完后,程序就調(diào)用Scri p t類中的eventsPr ocessed(方法,在這兒可以加入用戶想要實現(xiàn)的動畫、交互等各種效果.Scri p t類中的shutdown(方法實現(xiàn)離開VRML文件的方式.通過Scri p t節(jié)點,java程序處理過的數(shù)據(jù)返回給VR ML文件.通過初始化時getEvent O ut(得到的變量的set V alue(方法將值傳遞給Scri p t節(jié)點的event O ut域,再通過路由傳遞給VR ML中的各類節(jié)點,完成整個通信過程.Java直接修改場景中的節(jié)點,仍然要用到Scri p t節(jié)點.首先在定義Scri p t節(jié)點時,將event O ut域改為fi
9、eld域,fieldType定義為SF Node,具體格式如下:“field SF Node fieldna me USE node Na me”.“node Na me”為要修改的節(jié)點名稱(在VR ML中由DEF語句命名,產(chǎn)生一個指向名為node Na me節(jié)點的指針.執(zhí)行初始化時通過getField(方法得到相應(yīng)的SF2 Node類的一個實例,通過get V alue(方法得到該類的值,這里它的值恰好是名稱為node Na me的Node類的實例,然后通過Node 類提供的方法直接修改節(jié)點.getExposedField (String p0、getEventI n (String p0方
10、法,分別得到節(jié)點的field 和eventI n 域,并把結(jié)果作為Field 類;再通過各Field 類的子類提供的方法讀取和設(shè)置值,將設(shè)置結(jié)果直接返回節(jié)點,不用再設(shè)置路由,從而達到了直接修改節(jié)點的目的.Node 類還提供了getEvent O ut (String p0方法,用它可以得到節(jié)點的event O ut 域,與前兩個方法不同,它得到的結(jié)果是一個不能修改的Field 類,即Field 類的子類ConstField 類.使用改進后的方法,可以有效地縮減代碼長度,節(jié)省VR ML 文件的計算時間,提高VRML 場景的生成速度.Base Node 類中定義了兩個方法:get B r owse
11、r (和getType (.get B r owser (方法將會返回Base Node 類所處的瀏覽器.B r o wser 類存在于VR ML 包中,它提供了一系列方法來對整個VRML 文件進行控制.如:(1添加和刪除路由:addRoute (SF Node fr omNode,SFString fr omEvent O ut,SF Node t oNode,SFString t oEventI n ,deleteRoute (SF Node fr omNode,SFString fr omEvent O ut,SF Node t oNode,SFString t oEventI n .(
12、2直接創(chuàng)建VR ML:create V r m lFr omString (SFString vr m lSyntax (把要創(chuàng)建的節(jié)點語法以字符串的方式作為參數(shù)寫入.(3在VR ML 中建立相應(yīng)節(jié)點:create V r m lFr omURL (MFString url,SF Node node,SFString event (該方法的提供節(jié)點語法的參數(shù)是放在url 地址所指出的VR ML 文件中,瀏覽器通過url 找到要加入的節(jié)點,把它加入到node 參數(shù)指定的節(jié)點中event 參數(shù)指定的eventI n 域中.(4用指定的節(jié)點來替換整個VR ML 文件:rep lace World (
13、MF Node nodes .用url 指定的另一個VRML 文件來替換當(dāng)前的文件:l oadURL (MFString url,MFString para meter .Scri p t 類執(zhí)行initialize (方法時,得到瀏覽器實例,然后p r ocessEvent (Event e 方法執(zhí)行時使用上述方法建立、修改VR ML 場景.通過改進,不僅VR ML 文件代碼長度縮減,java 程序代碼也大大減少,進一步提高了VR ML 場景的生成速度.2.2外部編程接口(EA I 交互S A I 交互VR ML 離不開Scri p t 節(jié)點和Scri p t 類(vr m l .node
14、包.為了實現(xiàn)通信功能編寫的java 類都必須繼承自Scri p t 類.但java 不支持多繼承,如果用App let 操控VR ML 場景,java 程序要繼承Scri p t 類的方法相當(dāng)復(fù)雜.特別是要把VR ML 文件與App let 集成在同一個HT ML 頁面時,用Scri p t 類來實現(xiàn)頗為困難,而且程序代碼冗長、可擴展性差6.VR ML97標(biāo)準(zhǔn)提供的E A I 定義了外部環(huán)境怎樣通過VR ML 現(xiàn)存的事件驅(qū)動模式來訪問VR ML 內(nèi)部的節(jié)點的一系列方法,實現(xiàn)了App let 與VR ML 場景的通信.E A I 包含瀏覽器腳本接口的全部功能,例如查詢?yōu)g覽器的狀態(tài)、增加或刪除路由
15、、生成新的節(jié)點等功能7.Java 主要使用B r owser 和Node 兩個類(vr m l .external 包,以及其它一些如處理eventI n 域和even 2t O ut 域的各個屬性類(EventI n 3、Event O ut 3和處理例外的各種3Excep ti on 類完成對EA I 的描述.B r owser 類提供了3個方法:get B r owser (App let pApp let 、get B r owser (App let pApp let,String fra 2me Name,int index 和get N ode (String na me .前兩
16、個方法是靜態(tài)方法,直接在App let 類中使用這兩個方法得到App let 類和VRML 所在的瀏覽器類的實例.get N ode (方法可以直接得到VR ML 文件的具體節(jié)點(Node 類的實例,用I n L ine 語句嵌入在VR ML 文件中的各個節(jié)點是用get N ode (方法無法得到的.它用自己的getEventI n (和getEvent O ut (方法來得到VR ML 節(jié)點的各個域.然后使用返回的Event 3的實例的get V alue (和set V alue (方法來控制具體的值.EventI n 3類僅提供了設(shè)置值的set V alue (方法;Event O ut
17、 3類相對復(fù)雜,不僅提供了get V alue (方法來獲得當(dāng)前值,還提供了監(jiān)聽Event O ut 域的接口Even 2t O ut O bserver,隨時監(jiān)聽VR ML 節(jié)點中是否有新的Event O ut 事件發(fā)生,一旦有新事件發(fā)生,通過替代該接16第4期李國軍,等:VR ML 與JAVA 在網(wǎng)絡(luò)課件中交互運用分析26鞍山師范學(xué)院學(xué)報第8卷口提供的callback(Event O ut value,double ti m eSta mp,Object data方法響應(yīng)事件.通過B r owser和Node類,可以拋棄Scri p t節(jié)點和Scri p t類甚至路由而實現(xiàn)對VRML文件的
18、各種節(jié)點即Node類的各個實例直接操控.但get B r owser(方法的參數(shù)必須是App let的實例,因而該方法只能通過App let來控制VRML.3總結(jié)VR ML與其它實現(xiàn)三維場景的技術(shù)手段(如OpenG L,Cult3D,3DS MAX,V ie wpoint相比,具有語法簡單、三維建模功能強大、便于網(wǎng)上發(fā)布等優(yōu)點.但由于VR ML本身僅僅是一種標(biāo)準(zhǔn),不可能滿足各行各業(yè)的所有需要.所以,高級交互功能的實現(xiàn)必須借助于Java等功能強大的高級語言.這樣,可以有效地彌補VR ML本身的一些不足(例如邏輯判斷、文件操作、鍵盤輸入、精確控制場景等,進而完善與HT2 ML等其它媒體的交互,也可實現(xiàn)復(fù)雜的虛擬環(huán)境系統(tǒng)網(wǎng)絡(luò)課件.參考文獻:1吳訪升.基于VR ML交互式網(wǎng)絡(luò)課程的實現(xiàn)技術(shù)J.中國電化教育,2002,(9:48-49.2王德新.在VR ML文件中實現(xiàn)對數(shù)據(jù)庫信息的訪問J.沈陽工業(yè)大學(xué)學(xué)報,2002,24(5:417-419.3徐洪珍.VR ML和
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省南平市水北中學(xué)2020年高二數(shù)學(xué)理期末試題含解析
- 土地租賃協(xié)議書的爭議解決(2篇)
- 弱電工程簡易施工合同范本
- 林業(yè)砍伐車駕駛員聘用合同范本
- 跨文化交際教師聘用合同
- 水族館旅店租賃合同
- 咖啡廳安全員聘用合同范本
- 超市貨梯施工安裝合同
- 企業(yè)分手協(xié)議書模板
- 2024砂石場環(huán)保工人環(huán)保作業(yè)安全規(guī)范合同3篇
- 智慧燃?xì)獍踩O(jiān)管平臺解決方案
- 助產(chǎn)士核心勝任力量表
- 數(shù)據(jù)標(biāo)準(zhǔn)管理實踐白皮書
- DB64∕T 1754-2020 寧夏磚瓦用粘土礦產(chǎn)地質(zhì)勘查技術(shù)規(guī)程
- CECA/GC1-2015建設(shè)項目投資估算編審規(guī)程
- 八年級生地會考試卷與答案
- 主體結(jié)構(gòu)檢驗批一套
- 螺桿壓縮機檢修手冊
- 七年級科技制作教案全冊
- 建筑工程設(shè)計過程控制流程圖
- T∕CRIA 20002-2021 炭黑原料油 煤焦油
評論
0/150
提交評論