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

工程圖學虛擬實驗系統開發關鍵技術研究

2011-07-07 06:52:50邱龍輝
圖學學報 2011年4期
關鍵詞:程序實驗方法

邱龍輝, 葉 琳

(青島科技大學機電工程學院,山東 青島 266061)

工程圖學虛擬實驗采用Web+Java+VRML平臺,在網絡中構建圖學學習實踐的空間,優化學生的課內和課后實驗和實踐訓練環境。實驗系統要求能夠實現:① 三維立體的實時變形處理,如截交線實驗中的立體切割;② 立體之間的位置變化處理,如立體相貫實驗和組合體實驗中立體的定位;③ 實驗參數調整靈活:可以直接控制模型調整和通過 Web頁面的界面調整[1]。但VRML的基本節點本身并不具備實現這些目標的能力,要實現上述目標,必須能夠通過程序方便的控制虛擬實驗系統中虛擬模型,如獲得模型的狀態數據、讀取模型的幾何結構數據、程序動態生成模型等,本文研究了使用Java平臺實現實驗系統的幾個關鍵技術。

1 Java程序控制VRML

Java程序控制VRML可以通過兩種方式,即通過 SAI (Script Authoring Interface)或 EAI(External Authoring Interface)[2]。SAI方式是通過VRML中的Script接口節點控制場景,充分利用了VRML原有的事件機制,但其Java程序類必須是Script類的子類[2-3],也就是說所編寫的Java類都必須繼承自Script類。EAI方式是使用一套針對VRML瀏覽器的Java類,實現了Java Applet與 VRML場景的通信。通過 EAI,Java Applet可以訪問當前運行的 VRML場景,在外部直接操作、控制和修改 VRML內部的場景。SAI和EAI相當于Java對VRML場景的內部控制和外部控制方法,可以滿足不同實驗的需要。

在系統中欲實現對 VRML場景的控制,應首先在 VRML程序對其開放的被控制節點使用DEF命名,建立該節點被檢索的標識,然后在Java程序中通過該名稱獲得對應節點的Node類實例。在SAI和EAI中獲得節點實例的方法不同,SAI必須在Script節點中定義域,并使用USE關鍵詞引用對應的節點,在 Java程序中使用getField()方法通過讀取Script節點中的域值獲得該實例。而EAI則相對靈活,只需使用getNode()方法即可直接獲得。

2 模型數據的獲取

在虛擬實驗操作過程中,諸如截交線實驗的截平面、組合體實驗中構件都需要獲得其空間位置,測繪實驗中需要獲得坐標點數據,此時獲得場景中模型當前的狀態數據和幾何結構數據成為關鍵環節之一,正確讀取相關數據才能進行其他的相關操作。場景中模型的結構數據和當前的狀態是由節點的出事件和外露域的參數表現的,所以獲得模型的結構數據和當前的狀態就是獲得相應節點的出事件和外露域參數。

使用VRML API時,獲得節點的出事件和外露域參數有兩個途徑:① 使用VRML的ROUTE語句,通過Script節點的eventIn獲得相關節點的狀態數據,需要在 VRML文件中添加許多ROUTE語句,但只適用于SAI模式開發;② 直接讀取 VRML節點的出事件和外露域,SAI和EAI均可以實現。

如圖1所示,直接讀取VRML節點出事件和外露域需要如下幾個步驟:

圖1 讀取出事件

(1)獲得Browser實例

本步驟需要定義一個 VRML API特有的Browser類,然后使用該類的 getBrowser()方法建立當前的Browser類實例。Browser類實際上是對VRML場景的一個Java封裝,其中包含了獲取當前瀏覽環境信息的各種方法。

(2)獲得節點(Node)實例

使用 SAI或 EAI開發時,獲得節點實例的方法不同:SAI必須在關聯的Script節點中定義域,并使用 USE關鍵詞引用對應的節點,然后在 Java程序中使用 getField()方法通過讀取Script節點中的域值獲得該實例;而EAI則相對靈活,只需使用getNode()方法即可直接獲得。

(3)獲得節點出事件(eventOut)或外露域(exposedField)實例

模型的結構數據和當前的狀態數據是通過該節點的eventOut或exposedField反映的。所以應先獲得該事件的實例。該實例的獲得通過Node類的getEventOut()方法實現。這一步驟需要將getEventOut得到的實例強制類型轉化為EventOut的相應子類(如 EventOutMFVec3f),以實現讀取eventOut事件目的。

(4)讀取模型的狀態數據

通過eventOut實例的getValue()方法實現模型的狀態數據的讀取。

按照前述步驟,在虛擬截交線實驗中,采用了 EAI的方式實時獲得了切割平面位置。其中須定義變量如下:

3 Java程序生成虛擬模型

在實驗過程中,經常需要根據實驗需求動態的建立模型;當針對實驗模型進行諸如切割、拉伸等操作后,也需要重新生成虛擬模型。因此,使用 Java程序動態地生成虛擬模型成為了虛擬實驗的關鍵過程。

向VRML場景添加節點,需要以下5個步驟。

(1)獲得瀏覽器的管理。

(2)獲得父節點的控制

場景中一般使用Transform節點作為容納模型形體的父節點,在 VRML文件需要對相應的Transform節點使用DEF定義名稱,同時在Java中使用Browser類的getNode()方法獲得該節點的Node類實例。

(3)獲得父節點的eventIn實例

向Transform節點中添加模型節點是通過該節點的eventIn事件addChildren實現的。所以必須先獲得該事件的實例。該實例的獲得通過Node類的 getEventIn()方法實現。此處同樣需要注意的是將getEventIn得到的addChildren實例強制轉化為EventIn的子類EventInMFNode。

(4)建立新模型節點數據

模型節點數據生成步驟如下:

1)計算獲得模型立體的點表和面表數據;

2)按VRML格式建立坐標(coordString)和坐標索引(coordindexString)字符串,1)中計算獲得的點表數據是雙精度型,而 VRML模型中數據精度不必太高,這里使用Java中Math類的 round()方法保留兩位小數,然后將坐標值轉換為字符串向坐標字符串賦值。同時注意各坐標之間需要加入空格,每組坐標后要加入逗號分隔,以符合VRML格式要求。

3)建立Node類數組

創建 Node類型的實例數組使用 API中Browser類的createVrmlFromString()方法,該方法的參數是符合 VRML格式的字符串。這里將坐標、坐標索引字符串與Transform的其他相關字符串組合。此處的字符串應按照 VRML編程時的格式,分行列出,這樣可以極大地減少程序在運行過程中的出錯率。

4 技術應用實例

下面以棱柱截交線實驗為例,說明各種方法的應用。截交線實驗進行中,截平面位置的獲得使用了VRML模型數據的獲取技術,如圖2所示;而截切后截斷體的生成使用了 Java程序生成虛擬模型技術,如圖3所示。

圖2 截平面位置的獲得

圖3 Java程序生成截斷體

5 結束語

本文針對工程圖學虛擬實驗系統在控制虛擬模型方面的需求,研究實現了 Java程序控制VRML,獲取VRML模型數據,生成虛擬模型等幾個實現模型控制中的關鍵技術。解決了虛擬實驗系統開發中的幾個難點問題,也為其他VRML虛擬系統提供了開發基礎。

[1]邱龍輝, 葉 琳. 基于VRML-Java平臺的工程圖學網絡實驗系統研究與實現[J]. 工程圖學學報, 2005,26(5): 155-159.

[2]Rikk Carey, Gavin Bell, Chris Marrin. ISO/IEC 14772-1:1997, Virtual Reality Modeling Language [S].

[3]The Java Tutorial [EB/OL]. http://java.sun.com/docs/books/tutorial

猜你喜歡
程序實驗方法
記一次有趣的實驗
做個怪怪長實驗
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产精品香蕉| 国产成人1024精品| 99精品免费在线| 色悠久久久| 永久免费AⅤ无码网站在线观看| 亚洲色图欧美视频| 一区二区三区四区日韩| 91在线视频福利| 精品视频在线观看你懂的一区| 亚洲视频a| 久久成人免费| 国产在线自揄拍揄视频网站| 婷婷99视频精品全部在线观看| 日韩在线永久免费播放| 亚洲色婷婷一区二区| 性网站在线观看| 日本道综合一本久久久88| 精品欧美一区二区三区在线| 欧美三级不卡在线观看视频| 欧美成人免费| 亚洲国产精品成人久久综合影院 | 久久亚洲国产一区二区| 国产91线观看| 国产精品亚洲va在线观看| 亚洲乱伦视频| a欧美在线| 久久超级碰| 青青青视频免费一区二区| 国产精品开放后亚洲| 好久久免费视频高清| 国产一区亚洲一区| 午夜国产精品视频黄| 国产精品福利一区二区久久| 日韩一区二区在线电影| 天天色天天综合| 在线观看无码a∨| 成人精品视频一区二区在线| 国产精品久久自在自2021| 亚洲女人在线| 99re精彩视频| 国产极品美女在线播放| 99久久精品久久久久久婷婷| 亚洲精品第一页不卡| 亚洲综合香蕉| 亚洲欧美一区二区三区麻豆| 影音先锋丝袜制服| 性欧美精品xxxx| 天天综合网色中文字幕| 高清久久精品亚洲日韩Av| 亚洲高清资源| 国产欧美日韩在线一区| 少妇高潮惨叫久久久久久| 久久这里只有精品国产99| 欧美成人手机在线观看网址| 女人天堂av免费| 免费毛片视频| 啊嗯不日本网站| 在线视频97| 在线无码九区| 久久毛片免费基地| 国产精品亚洲一区二区三区z| 97在线公开视频| 免费一级毛片在线观看| 99热这里只有成人精品国产| 国产精品久久久久久影院| 国产一级裸网站| 午夜不卡视频| 激情综合激情| 国产亚洲精品yxsp| 激情综合激情| 久久综合久久鬼| 97在线免费视频| 在线欧美日韩| 色综合五月| 国产第二十一页| 欧美一级高清片久久99| 素人激情视频福利| 亚洲一区二区三区国产精品| 午夜福利亚洲精品| 久草国产在线观看| 美女视频黄频a免费高清不卡| 幺女国产一级毛片|