版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jì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ò)課件中交互運用分析李國軍,鐘志強(qiáng)(鞍山師范學(xué)院物理系,遼寧鞍山114005摘要:VR ML與JAVA是制作網(wǎng)絡(luò)課件的新技術(shù),它們之間的信息交互是兩種技術(shù)聯(lián)合在課件制作中的關(guān)鍵.關(guān)鍵詞:VR ML;JAVA;E A I中圖分類號:G434文獻(xiàn)標(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虛擬機(jī)交互地訪問這些文件并解釋執(zhí)行.將Java與VR ML結(jié)合,能夠很好地實現(xiàn)網(wǎng)絡(luò)多媒體課件技術(shù):使用VRML進(jìn)行場景構(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ā)事件進(jìn)而改變自己在空間中的位置、外型和顯示效果,還可以將處理后的數(shù)據(jù)送到輸出域,傳遞給其它模型節(jié)點.各節(jié)點通過接口域的相互路由(r oute t o實現(xiàn)數(shù)據(jù)傳輸,路由的映射關(guān)系自由,但接口域的數(shù)據(jù)規(guī)格必須嚴(yán)格一致.2VRML擴(kuò)展交互VR ML本身交互機(jī)制是無法構(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交互即使用事件機(jī)制和路由利用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進(jìn)行處理;最后,通過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é)點的字段是由用戶延伸的,到達(dá)這些字段的字段會自動移到和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è)置路由,從而達(dá)到了直接修改節(jié)點的目的.Node 類還提供了getEvent O ut (String p0方法,用它可以得到節(jié)點的event O ut 域,與前兩個方法不同,它得到的結(jié)果是一個不能修改的Field 類,即Field 類的子類ConstField 類.使用改進(jìn)后的方法,可以有效地縮減代碼長度,節(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 文件進(jìn)行控制.如:(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 場景.通過改進(jìn),不僅VR ML 文件代碼長度縮減,java 程序代碼也大大減少,進(jìn)一步提高了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)頗為困難,而且程序代碼冗長、可擴(kuò)展性差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相比,具有語法簡單、三維建模功能強(qiáng)大、便于網(wǎng)上發(fā)布等優(yōu)點.但由于VR ML本身僅僅是一種標(biāo)準(zhǔn),不可能滿足各行各業(yè)的所有需要.所以,高級交互功能的實現(xiàn)必須借助于Java等功能強(qiáng)大的高級語言.這樣,可以有效地彌補VR ML本身的一些不足(例如邏輯判斷、文件操作、鍵盤輸入、精確控制場景等,進(jìn)而完善與HT2 ML等其它媒體的交互,也可實現(xiàn)復(fù)雜的虛擬環(huán)境系統(tǒng)網(wǎng)絡(luò)課件.參考文獻(xiàn):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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版實習(xí)指導(dǎo)教師專業(yè)素養(yǎng)提升項目勞動合同規(guī)范3篇
- 2025版公益宣傳活動宣傳品制作及推廣合同2篇
- 2025版住宅小區(qū)地下車庫車位租賃及維護(hù)服務(wù)合同范本2篇
- 2025版木工班組智能化設(shè)備引進(jìn)與應(yīng)用合同4篇
- 企業(yè)對人才需求談職業(yè)
- 2025年度個人房產(chǎn)維修勞務(wù)合同范本4篇
- 二零二五年度股權(quán)并購與國際化布局合同3篇
- 2025版國際貿(mào)易采購合同(原材料)3篇
- 民政局2025年度自愿離婚協(xié)議書財產(chǎn)分割與子女撫養(yǎng)協(xié)議范本4篇
- 基于2025年度需求的冷卻塔設(shè)計、安裝與調(diào)試服務(wù)合同2篇
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費管理工作指引》知識培訓(xùn)
- 初一到初三英語單詞表2182個帶音標(biāo)打印版
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
- 2024年共青團(tuán)入團(tuán)積極分子考試題庫(含答案)
- 碎屑巖油藏注水水質(zhì)指標(biāo)及分析方法
- 【S洲際酒店婚禮策劃方案設(shè)計6800字(論文)】
- 鐵路項目征地拆遷工作體會課件
- 醫(yī)院死亡報告年終分析報告
- 中國教育史(第四版)全套教學(xué)課件
評論
0/150
提交評論