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

基于VRML 和Java Applet 的動態交互場景的構建

2019-11-05 11:15:06李蘭
現代計算機 2019年27期
關鍵詞:數據庫用戶方法

李蘭

(山西師范大學現代文理學院,臨汾041004)

0 引言

VRML 是跨平臺的虛擬現實建模語言,在網絡環境中構建三維虛擬場景[1]。VRML 文件規模較小,可以直接嵌入到HTML 文件中去,在一般的瀏覽器中安裝適當的插件就可以超空間的瀏覽行為仿真,因而在網絡制造、虛擬漫游以及計算機動畫中得到廣泛的應用[2]。

Java 是跨平臺的網絡分布式計算環境中廣泛使用的編程語言,具有強大的編程能力。Java Applet(Java小應用程序)是一種可以加載到Web 頁面,由瀏覽器調用執行的Java 程序,可使Web 頁面更加動態、更具交互性[3]。VRML 與Java Applet 的結合能夠真正意義上實現動態交互的虛擬場景[4]。

1 VRML交互機制

交互功能是VRML 的一個重要特點,通過交互能使用戶在虛擬場景中有身臨其境的感覺。交互可通過三種方式實現:傳感器節點的交互,Script 節點的交互及EAI 接口的交互。

VRML 中使用傳感器節點(時間傳感器除外)完成感知瀏覽者的操作或者在場景中的觀察位置,然后對此做出反應的交互功能。常用的有觸摸傳感器Touch-Sensor 節點感知用戶鼠標觸發動作;平面傳感器Plane-Sensor 節點感知用戶鼠標拖曳動作;圓柱體傳感器CylinderSensor 節點感知用戶繞中心軸拖拽旋轉的動作;接近傳感器ProximitySensor 節點感知用戶所在方位;碰撞傳感器Collision 節點感知造型與用戶發生碰撞動作,傳感器一旦感應到事件的發生,將不斷輸出該事件到目標節點,從而觸發目標的動態效果,使虛擬現實效果更加逼真,但傳感器能感應的事件有限,因而交互行為也有限[5]。

VRML 腳本節點Script 用以描述一個由用戶自定義的傳感器或插補器,通過URL 域包含一組瀏覽器支持的任何一種語言編寫的程序或叫腳本,在產生出事件之前執行計算或處理,并將結果發送到VRML 場景,可以使交互更加靈活[6]。

Script 節點只能綁定程序按照預定規則改變場景,實現靜態虛擬效果及簡單交互等功能。對虛擬場景與用戶的交互、多用戶間的交互及網絡通訊能力等更具一般性的行為,則需利用EAI 接口的交互實現。EAI的基本思想是外部程序能夠通過VRML 事件模型訪問VRML 場景節點,從而控制VRML 場景,外部程序即Java Applet,它與VRML 同在HTML 頁面中,建立了與VRML 的通信接口,并可與外部數據庫建立連接,從而使用戶與虛擬場景實現動態交互,真正成為VRML 中的一個角色,一個參與者[7]。

2 整體架構

基于VRML 和Java Applet 相結合的動態交互場景的整體架構如圖1 所示。整個系統分為3 層:應用層、實現層和資源層。其中應用層是HTML 界面,VRML 和Java Applet 置于同Web 頁面,運行時則在同一個瀏覽器環境中。VRML 提供虛擬現實的三維場景,Java Applet 則提供實現用戶交互的控件,用以控制場景和實時顯示動態參數;實現層用Java Applet 編制的程序作為仿真控制的引擎,一方面連接數據庫,把數據庫的數據傳送到場景中,另一方面建立與VRML 場景的接口,用來驅動場景的動態生成與用戶的交互等;資源層是用數據庫管理系統搭建的數據庫,可以存儲并更新場景的全部數據參數。其中Java Applet 與數據庫的連接接口用JDBC 來完成,Applet 與VRML 的接口用EAI 技術來實現。

圖1 動態交互場景的整體架構

3 具體實現

3.1 用戶界面及工作流程

系統采用的是瀏覽器/服務器模式,系統運行用到的程序代碼和數據均在服務器上存放,客戶端只需要安裝瀏覽器和必要的VRML 插件。HTML 界面包括兩部分:VRML 場景和Java Applet 控件,其中Java Applet控件包括按鈕、文本框等。HTML 文檔中Java Applet程序.class 使用標記,VRML 文件.wrl 使用標記[8]嵌在同一Web 頁。其工作流程如圖2所示。

圖2 工作流程

在用戶界面上,首先點擊“連接數據庫”按鈕進行初始化,完成數據庫的連接操作,系統返回可供Java Applet 程序使用的靜態場景數據和動態運動空間位置等參數,并動態生成靜態場景。用戶點擊“開始”按鈕,Applet 讀取并傳輸數據至VRML 場景,進行動態交互;同時把相關的數據信息顯示在用戶界面。點擊“停止”按鈕,中止此次仿真。

3.2 VRML與Java Applet接口實現

EAI 接口定義了一套針對VRML 瀏覽器的Java類,其中類vrml external Browser 至關重要,是實現EAI訪問的基礎[9]。瀏覽器類(Browser)實際上是VRML 場景的一個Java 封裝,包括全部的腳本語言接口,重要的是包含有getNode()方法。通過該方法可獲得一個Node 類的實例,即為VRML 場景中造型節點在Java Applet 中的對應節點。因此通信之初要先創建一個瀏覽器類的實例,方法如下所示:

Browser browser=Browser.getBrowser();

Browser 類實例化后,EAI 即可訪問VRML 場景的節點、往eventIn 域發送事件、eventOut 域發出事件及監聽eventOut 域,下面分別闡述。

(1)訪問節點

VRML 場景中的節點通過瀏覽器類的getNode()方法實例化,其eventIn 和eventOut 則通過Node 類的getEventIn()和getEventOut()方法實例化為Applet 中的對應體,將域名以字符串參數傳入,實例化為EventIn 或者是EventOut。ExposedField 域也允許訪問,事件入口需在域名前加set_作為前綴,事件出口需在域名后加_changed 作為后綴。三維場景中已經定義moxing 節點,其實例的獲得方法如下所示:

Node moxing=browser.getNode(“moxing”);

(2)往eventIn 域發送事件

將被訪問節點的eventIn 類實例化,即可向場景中該節點發送事件,由于eventIn 是抽象類,必須先強制轉換成合適的如EventInSFVec3f 等eventIn 類的子類,才可以提供發送事件的方法。例設置moxing 節點的EventInSFVec3f 類的scale 輸入值,如下所示:

EventInSFVec3f scale=(EventInSFVec3f)moxing.getEventIn(“set_scale”);

(3)eventOut 域發出事件

將被訪問節點的EventOut 類實例化,即可獲取場景中目標節點eventOut 域的當前值,也可在eventOut域發出事件時設置callback()方法。eventOut 類同eventIn 一樣也是抽象類,必須先強制轉換成合適的eventOut 類的子類,才可獲取eventOut 當前值的方法。例取得moxing 節點的EventInSFVec3f 類的scale輸出值,如下所示:

scale=((EventOutSFVec3f)moxing.getEventOut(“scale_changed”))).getValue();

(4)監聽eventOut 域

當場景目標節點的eventOut 域有新值產生時,EAI提供的監聽機制可使Applet 實時反應并進行相應的后續處理。具體實現是先將接口類EventOutObserver 類的子類實例化,調用其advise()方法監聽場景節點的eventOut,發現eventOut 有輸出,EventOutObserver 子類的callback()方法會自動執行。例監聽moxing 節點的scale 域發生變化,如下所示:

moxing.getEventOut(“set_scale”).advise(observer,null);

3.3 Java Applet與數據庫接口連接

Java Applet 與數據庫通過JDBC(Java Database Connectivity)連接,JDBC 是Java 語言編寫的類和接口,允許Applet 對遠程數據庫進行訪問、獲取及更新數據等操作。利用JDBC 接口將Java Applet 與數據庫連接的一般步驟有:建立數據源;加載由數據庫類型決定的驅動程序;建立與某個數據源的連接;發送SQL 語句;處理返回的ResultSet 類的對象,將查詢結果最后顯示給用戶;關閉連接;捕獲異常,尤其是當新建連接、驅動程序加載、語句執行、類型轉換等操作發生時的異常。

4 應用實例

圖3 為貼裝機貼裝場景實例。用EAI 實現在同一HTML 頁面中三維虛擬世界的瀏覽(用VRML 創建)和場景的交互(Java Applet 實現),用戶界面包括三個按鈕(“連接數據庫”、“開始”、“停止”)和幾個文本顯示框,其中按鈕用來控制程序的執行,文本框用于動態顯示貼裝過程參數。

圖3 貼裝機貼裝場景實例

5 結語

VRML 作為虛擬現實標準建模語言,側重對三維空間場景模型的搭建,復雜交互功能的實現必須借助于Java 等功能強大的高級語言,這樣才能讓用戶真正成為場景的直接參與者與控制者。本文詳細論述以Java Applet 作為控制的核心、VRML 場景為三維展示的平臺,借助EAI 構建一個三維交互式虛擬場景的方法,以期為VRML 的研究與應用做進一步探索。

猜你喜歡
數據庫用戶方法
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 成人欧美日韩| 国产网站免费| 日本黄网在线观看| 精品久久777| 欧美日韩国产综合视频在线观看| 久久网欧美| 精品国产一区二区三区在线观看| 狠狠色成人综合首页| 天天色天天操综合网| 亚洲免费播放| 手机看片1024久久精品你懂的| 99re热精品视频国产免费| a级毛片网| 日本五区在线不卡精品| 亚洲男人天堂网址| 狠狠综合久久久久综| 亚洲中文字幕av无码区| 中文字幕有乳无码| av天堂最新版在线| 全裸无码专区| 国产香蕉在线| 在线视频一区二区三区不卡| 亚洲成人网在线观看| 一级成人a毛片免费播放| 婷婷午夜影院| 国产激爽大片在线播放| 亚洲成人精品| 无码精油按摩潮喷在线播放 | 成色7777精品在线| 久久中文字幕2021精品| 国产精选自拍| 青草91视频免费观看| 激情亚洲天堂| 波多野结衣一区二区三区88| 欧美在线伊人| 亚洲第一成网站| 亚洲浓毛av| 91麻豆国产精品91久久久| 美女被操黄色视频网站| 亚洲综合亚洲国产尤物| 日韩无码视频专区| 在线观看热码亚洲av每日更新| 亚洲色图综合在线| 国产免费一级精品视频| 91视频区| 国产精品免费电影| 亚洲成人播放| 成人福利在线观看| 毛片网站在线看| 亚洲日韩欧美在线观看| 成人午夜视频在线| 亚洲国产日韩视频观看| 日韩精品亚洲一区中文字幕| 国产精品网拍在线| 国产精品区视频中文字幕| 在线人成精品免费视频| 亚洲人成网址| 午夜精品福利影院| 欧美性猛交一区二区三区 | 99re免费视频| 欧美精品亚洲二区| 免费观看精品视频999| 最新国产精品第1页| 伊人久久福利中文字幕| 99久久精品免费看国产免费软件| 国产美女精品一区二区| 激情六月丁香婷婷四房播| a毛片在线免费观看| 无码又爽又刺激的高潮视频| 久草青青在线视频| 国产v精品成人免费视频71pao| 国产一级小视频| 91福利国产成人精品导航| 宅男噜噜噜66国产在线观看| 无码乱人伦一区二区亚洲一| 亚洲国产亚综合在线区| 亚洲色图综合在线| 亚洲精品国产成人7777| 免费看的一级毛片| 中文字幕丝袜一区二区| 国产va欧美va在线观看| 久久公开视频|