亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Java3D的VRML三維模型變換

        2008-12-31 00:00:00茆麗麗趙野軍
        中國(guó)外資·下半月 2008年11期

        摘要:以Java3D的API接口為基礎(chǔ),導(dǎo)入VRML三維圖形,使用Java3D中不同的類方法對(duì)導(dǎo)入的三維圖形不同節(jié)點(diǎn)進(jìn)行變換。

        關(guān)鍵詞:Java3D VRML 幾何變換 視圖 光照 交互

        由于Java語(yǔ)言的平臺(tái)無(wú)關(guān)性、安全機(jī)制、高可靠性和內(nèi)嵌網(wǎng)絡(luò)支持已經(jīng)使之成為當(dāng)前編寫(xiě)網(wǎng)絡(luò)應(yīng)用程序的首選工具之一。若用Java語(yǔ)言開(kāi)發(fā)三維網(wǎng)絡(luò)應(yīng)用程序,基于它自身的面向?qū)ο蟮奶卣?,相比于C++易學(xué)易用的特點(diǎn),那對(duì)于程序員來(lái)說(shuō)就獲得了一個(gè)可編寫(xiě)三維應(yīng)用程序的優(yōu)良工具。

        ▲▲ 一、 Java3D API

        Java3D是SUN公司在研究OpenGL三維圖形庫(kù)及VRML虛擬現(xiàn)實(shí)建模語(yǔ)言的基礎(chǔ)上開(kāi)發(fā)出來(lái)的一個(gè)API,包含了幾乎所有編寫(xiě)JAVA交互三維應(yīng)用程序所需要的最基本的類、接口[5]。是適用于Internet環(huán)境的跨平臺(tái)三維圖形開(kāi)發(fā)工具包。Java本身所具有的網(wǎng)絡(luò)功能與OpenGL、DirectX的圖形圖像處理功能相結(jié)合,使得Java語(yǔ)言的三維圖像可以通過(guò)瀏覽器在Internet上顯示。而且用Java3D生成的代碼具有可傳輸性,即從服務(wù)器端到客戶端傳輸?shù)氖巧扇S圖形的程序與數(shù)據(jù)(Applet),而不是圖形本身,這樣可以大大減少網(wǎng)絡(luò)傳輸數(shù)據(jù)量。

        目前流行的幾種三維圖形格式中,VRML被看著為一個(gè)通用的三維圖形格式,其他主要的三維圖形格式均可以轉(zhuǎn)換成VRML格式。

        ▲▲ 二、導(dǎo)入VRML圖形

        為了在Java3D中調(diào)用VRML圖形,需要一個(gè)vrml97.jar包,它是SUN公司提供的一個(gè)VRML的Loader。有了Loader這個(gè)jar包后,就可以方面的調(diào)用VRML圖形了。具體步驟為:

        先定義一個(gè)VrmlLoader對(duì)象:

        VrmlLoader vrmlLoader = new VrmlLoader();

        根據(jù)URL地址,和三維圖形文件名,得到被調(diào)用圖形的場(chǎng)景圖

        VrmlScenevrmlScene=(VrmlScene)vrmlLoader.load(dirString + “*.wrl”);

        VrmlScene類常用的方法有

        * Background[] getBackgroundNodes(); 返回一個(gè)場(chǎng)景中包含的所有背景節(jié)點(diǎn)的數(shù)組

        * Behavior[] getBehaviorNodes();返回一個(gè)場(chǎng)景中包含的所有行為節(jié)點(diǎn)的數(shù)組

        * Light[] getLightNodes();返回一個(gè)場(chǎng)景中包含的所定義的燈光節(jié)點(diǎn)的數(shù)組

        * java.util.Hashtable getNamedObjects();返回一個(gè)Objects哈希表,這個(gè)哈希表包含所有已經(jīng)命名的Objects以及和這些Objects相關(guān)的場(chǎng)景

        * BranchGroup getSceneGroup();返回場(chǎng)景圖中BranchGroup根節(jié)點(diǎn)。因?yàn)橹挥蠦ranchGroup節(jié)點(diǎn)才能直接附屬到一個(gè)Local類對(duì)象上,所以用這個(gè)方法返回的BranchGroup節(jié)點(diǎn)可以直接添加到j(luò)ava創(chuàng)建的場(chǎng)景節(jié)點(diǎn)下,也可以用detach()方法從Local類對(duì)象上剝離出來(lái)。

        * Sound[] getSoundNodes(); 返回導(dǎo)入文件中所定義的聲音節(jié)點(diǎn)數(shù)組

        * TransformGroup[] getViewGroups(); 返回導(dǎo)入文件中所定義的幾何變換節(jié)點(diǎn)數(shù)組

        通常情況下,我們?cè)贘ava3d中調(diào)入VRML三維圖形,不僅僅是原有圖形的顯示,而是想根據(jù)需要,用Java語(yǔ)言對(duì)原

        有圖形作出一定的修改,如做一些幾何變換,視圖改變,調(diào)整光照和紋理,以及加入一些鼠標(biāo)、鍵盤(pán)行為,以達(dá)到一定的交互目的。

        ▲▲ 三、行為和交互

        互聯(lián)網(wǎng)中的三維圖形顯示有兩種常見(jiàn)的動(dòng)態(tài)變化:交互和動(dòng)畫(huà)。交互(Interaction)是根據(jù)用戶輸入信息改變圖形場(chǎng)景。動(dòng)畫(huà)(Animation)生成隨著時(shí)間變化的繪制序列,產(chǎn)生動(dòng)態(tài)效果。在Java3D中,可以用三種方式實(shí)現(xiàn)用戶與圖形場(chǎng)景間的交互。一是利用java的面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn),通過(guò)適用Behavior類以及其他相關(guān)類,向場(chǎng)景中引入了動(dòng)畫(huà)和交互邏輯。

        MouseRotate mouserotate = new MouseRotate();

        MouseZoom mousezoom = new MouseZoom();

        MouseTranslate mousetranslate = new MouseTranslate();

        二是利用java中的事件處理模型,有事件源生成各種事件,一個(gè)或多個(gè)監(jiān)聽(tīng)器監(jiān)聽(tīng)事件。具體應(yīng)用時(shí),先要在類定義時(shí),要實(shí)現(xiàn)一個(gè)或多個(gè)監(jiān)聽(tīng)器

        public class Applet3D extends Applet implements ItemListener,WindowListener, ActionListener, CheckboxMenuListener{}

        在方法定義中,添加各監(jiān)聽(tīng)器向組件登記以獲得事件發(fā)生信息

        checkBox = new Checkbox(suitFile, true);

        menu.add(checkBox);

        checkBox.addItemListener(this);

        在處理事件類中,實(shí)現(xiàn)監(jiān)聽(tīng)器接口的方法。

        ▲▲ 四、 結(jié)束語(yǔ)

        Java3D API大大提高了3D圖形的開(kāi)發(fā)能力和顯示效果,擴(kuò)大了3D圖形在互聯(lián)網(wǎng)中的應(yīng)用,它的三維圖形導(dǎo)入功能使得網(wǎng)絡(luò)程序開(kāi)發(fā)人員不再被困于復(fù)雜的三維虛擬圖形的開(kāi)發(fā)上,而把重點(diǎn)放在整個(gè)場(chǎng)景的布局,組合上和動(dòng)態(tài)交互上,這樣就可以大大降低三維網(wǎng)絡(luò)應(yīng)用程序開(kāi)發(fā)難度,使得三維網(wǎng)絡(luò)技術(shù)可以得到更廣泛的實(shí)際應(yīng)用。

        參考文獻(xiàn):

        [1]李志均,傅秀芬 Java3D API 與Java3D編程技術(shù)[J]. 現(xiàn)代計(jì)算機(jī)1999(4):28-33

        [2]孫莉,廖文和,劉長(zhǎng)毅,周煒 基于VRML-Java3D的交互式裝配可視化環(huán)境構(gòu)建[J] 電氣技術(shù)與自動(dòng)化. 2006.35 (2 ):106 ~109

        [3]賽博科技工作室.VRML與Java編程技術(shù)[M]. 北京:人民郵電出版社, 2002 -1.

        (責(zé)任編輯:張曉輝)

        一本加勒比hezyo无码专区| 亚洲在线一区二区三区| 国产精品久久久黄色片| 粗大的内捧猛烈进出看视频| 狼色精品人妻在线视频| 欧美日韩国产另类在线观看| 亚洲天堂男人的av天堂| 亚洲av中文无码乱人伦在线视色| 男女啪啪免费体验区| 亚洲专区一区二区在线观看| 日本一区二区三区激视频| 亚洲 欧美 综合 在线 精品| 无套内射蜜桃小视频| 亚洲三区二区一区视频| 婷婷久久亚洲中文字幕| 亚洲日韩在线中文字幕综合| 国产丝袜美腿精品91在线看| 闺蜜张开腿让我爽了一夜| 四虎成人在线| 国产在线播放免费人成视频播放| 国产av无码专区亚洲av果冻传媒| 成人妇女免费播放久久久| 毛片av在线播放亚洲av网站| 街拍丝袜美腿美女一区| 中国老太婆bb无套内射| 亚洲av之男人的天堂| 久久99热精品免费观看麻豆| 成人国产一区二区三区| 成人精品一区二区三区中文字幕 | 九九久久精品国产| 久久AⅤ天堂Av无码AV| 国产伦一区二区三区久久| 精品国产yw在线观看| 天天摸日日摸狠狠添| 亚洲最稳定资源在线观看| 亚洲最大一区二区在线观看| 亚洲熟妇av日韩熟妇在线| 在线观看亚洲AV日韩A∨| 天堂av国产一区二区熟女人妻| 精品av熟女一区二区偷窥海滩 | 国产精品23p|