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

基于Java 3D的虛擬漫游技術研究

2010-04-12 00:00:00林旅平,王
現(xiàn)代電子技術 2010年14期

摘 要:探討在當前網(wǎng)絡環(huán)境下可滿足網(wǎng)絡可視化要求的虛擬漫游技術,剖析虛擬漫游控制技術即視點變換情況,給出一種科學有效的視點變換關系,保存當前的視點坐標和方位,利用鍵盤來控制漫游方向和行進。結(jié)合Java 3D的代碼可傳輸特性,基于Java 3D構建了可滿足網(wǎng)絡可視化要求的虛擬建筑物漫游,效果較好。

關鍵詞: Java 3D; 虛擬漫游; 視點坐標; 網(wǎng)絡環(huán)境

中圖分類號:TN911; TP391 文獻標識碼:A

文章編號:1004-373X(2010)14-0084-02

Investigation of Virtual Ramble Technology Based on Java 3D

LIN Lü-ping, WANG Ru

(Xi’an University of Architecture Technology, Xi’an 710055, China)

Abstract: The virtual ramble technology which can meet the request of the network visualiztion under the current network environment is discussed. The virtual ramble control technology (variation of view point) is analyzed. A variation relation of view point which is scientific and effective is given. The virtual ramble which can meet the request of network visualization based on Java 3D is built by preserving the current eye coordinate and azimuth, utilizing the keyset to control the ramble direction and movement, and combining the code transmission charicteristic of Java 3D.

Keywords: Java 3D; virtual ramble; eye coordinate; network visalization

虛擬漫游技術是虛擬現(xiàn)實(virtual reality)技術的重要組成部分,在各個領域,尤其是旅游、航天航空、醫(yī)學、建筑等行業(yè)有著巨大的發(fā)展空間[1]。傳統(tǒng)的編程工具如OpenGL和DirectX,能夠有效的進行三維開發(fā),從而實現(xiàn)虛擬漫游,但是,隨著Internet的快速發(fā)展,B/S(Browse/Server)系統(tǒng)擁有傳統(tǒng)的C/S(Client/Server)系統(tǒng)所沒有的巨大優(yōu)勢,在B/S系統(tǒng)中,如果采用OpenGL等傳統(tǒng)的編程工具,只能在Web服務器端生成圖像,然后再一幅幅地傳給客戶端顯示,在當前的Internet傳輸能力下,是不可能滿足網(wǎng)絡可視化要求的。而Java 3D卻可以很好地解決Internet傳輸能力所帶來的問題,因為它具有代碼可傳輸性,這使得用來生成復雜三維圖像的程序可以方便地從服務器端傳送到客戶端,然后在客戶端本地運行,進而生成三維圖像。因為傳輸?shù)牟皇菆D像本身,而是控制圖像生成的程序和數(shù)據(jù),所以大大縮減了網(wǎng)絡傳輸?shù)臄?shù)據(jù)量[2]。

1 Java 3D

Java 3D是SUN公司繼Java的火爆成功后,于1997年推出的面向網(wǎng)絡的交互式三維圖形應用程序接口(API)[3]。Java 3D有純粹的面向?qū)ο蠼Y(jié)構,其基本數(shù)據(jù)結(jié)構(場景圖)是一些具有方向性的不對稱圖形組成的樹狀結(jié)構[4],涵蓋了整個視景和立體空間的完整描述[5];Java 3D封裝了流行的3D開發(fā)工具OpenGL和DirectX,提高了編寫三維圖形程序的層次——編程時不需要考慮光照、著色、碰撞檢查等復雜的圖形學問題;Java 3D來自于Java,所以它擁有了一切Java所擁有的優(yōu)點,比如一次編寫,就可以跨平臺運行,而且還可以充分借用Java的各種功能,如交互式用戶接口、圖像處理、字體、繪制二維圖形等;并且,Java 3D能并行著色,能自動利用硬件的加速功能來快速生成圖像,還能對場景進行預編譯以提高效率[6]。

2 視點變化

虛擬漫游的實質(zhì)與現(xiàn)實中的漫游一樣,物體在三維世界中是不變的,通過改變觀察者的視點,以及視角,來獲得不同的感官效果,從而實現(xiàn)漫游[7]。

Java 3D虛擬空間的坐標系統(tǒng)是右手坐標系的。x軸的正方向是水平向右,y軸的正方向是垂直向上,z軸正方向指向觀察者[8]。在實現(xiàn)虛擬漫游的時候,物體與所處虛擬空間坐標系的相對位置關系是不變的,改變的是觀察者的位置[9]。

在現(xiàn)實世界中,人觀察事物有前進、后退、左走、右走等行為,相應的,觀察者在世界坐標系中的坐標也發(fā)生改變,當觀察者改變視線的方向和角度時,所看到的景物也不一樣,虛擬世界中的漫游也采用同樣的道理[10]。這里可以模擬向前走和向左走的行為。構造一個這樣的坐標系,如圖1所示,正南方向為z軸正方向,正東方向為x軸正方向,O為原點,再標志2個點A和D,其中,OA垂直于OD;設定OA為視線的方向,則OD即為向左走時的方向。由點A做一條直線垂直于x軸并交于點B,另做一條直線垂直于z軸并交于點C;同理過D做x軸、z軸的垂線,垂足分別為E,F(xiàn)??梢园l(fā)現(xiàn),|OB|即為向前走時在x軸移動的距離,|OC|即為向前走時在z軸移動的距離;|OE|即為向左走時在x軸移動的距離,|OF|即為向左走時在z軸移動的距離。

圖1 視點的坐標位置

如圖1所示,視線與z軸負方向的角度θ在[0,90°]中,當觀察者從點O向前移動到點A,即觀察者的坐標從點O移動到點A時,相當于觀察者先從點O沿x軸負方向移動到點B,再由點B沿z軸負方向移動到點A。其中|OB|=|OA|sin θ,|OC|=|OA|cos θ。假定觀察者的原始坐標為(x1,z1),向前移動s,到達新的坐標點(x2,z2);則可以得到如下公式:

x2=x1-ssin θ,z2=z1-scos θ

當觀察者從點O向左移動到點D,由于OD垂直于OA,所以∠DOE=θ。由此可知|OE|=|OD|cos θ,|OF|=|OD|sin θ。假定觀察者的原始坐標為(x1,z1),向左移動s,到達新的坐標點(x2,z2);則可以得到如下公式:

x2=x1-scos θ,z2=z1+ssin θ

同樣的,θ在其他3個象限中時,當觀察者從坐標(x1,z1)向前移動s到坐標(x2,z2),均可以得出以下公式:

x2=x1-ssin θ (1)

z2=z1-scos θ (2)

當觀察者從坐標(x1,z1)向左移動s到坐標(x2,z2),均可以得出以下公式:

x2=x1-scos θ (3)

z2=z1+ssin θ (4)

同理可推出,當觀察者由坐標(x1,z1)向后移動s到坐標點(x2,z2)時,兩個坐標點之間的關系如下:

x2=x1+ssin θ (5)

z2=z1+scos θ (6)

當觀察者由坐標(x1,z1)向右移動s到坐標點(x2,z2)時,兩個坐標點之間的關系如下:

x2=x1+scos θ (7)

z2=z1-ssin θ (8)

當觀察者的坐標發(fā)生改變時,相應的,視點的坐標也在改變,而且變化的方向與距離跟觀察者移動的方向與距離一致。

3 建筑物漫游

利用上述的視點變換公式并結(jié)合Java 3D的知識,可以得出以下算法:

private TransformGroup targetTG; /*聲明一個TransformGroup對象*/

private double angle = 0.0; /*水平方向的角度*/

private double[]people={0.0,0.0,0.0}; /*觀察者的坐標位置*/

private double[]point={0.0,0.0,0.0}; /*觀察目標的坐標位置*/

Transform3D t=new Transform3D(); /*新建一個Transform3D對象*/

If(press up key){

/*根據(jù)式(1)和式(2)重新設定觀察者的坐標以及觀察目標的坐標*/

people[0] -= getCos(angle);

people[2] -= getSin(angle);

point[0] -= getCos(angle);

point[2] -= getSin(angle);

t.lookAt(new Point3d(people),new Point3d(point),

new Vector3d({0,1,0}));

this.targetTG.setTransform(t);

}

If(press left key){

/*根據(jù)式(3)和式(4)重新設定觀察者的坐標以及觀察目標的坐標*/

}

If(press down key){

/*根據(jù)式(5)和式(6)重新設定觀察者的坐標以及觀察目標的坐標*/

}

If(press right key){

/*根據(jù)公式(7)和公式(8)重新設定觀察者的坐標以及觀察目標的坐標;*/

}

將wrl格式的建筑物三維圖形文件導入到Java 3D中,并直接在瀏覽器中對它進行虛擬漫游,運行效果如圖2和圖3所示。

圖2 建筑物虛擬漫游(一)

圖3 建筑物虛擬漫游(二)

其中,圖2為觀察者在(0.2,0.0,10.2)位置對(0.2,0.0,0.6)位置進行觀察的畫面,圖3是觀察者在(0.1,0.0,10.7)位置對(0.1,0.0,0.7)位置進行觀察的畫面。

利用Java 3D的代碼可傳輸特性,可直接在瀏覽器中對建筑物進行虛擬漫游,很好地解決了網(wǎng)絡可視化的要求。

4 結(jié) 語

本文主要研究了在虛擬漫游中視點的變換關系,并基于Java 3D構建了可滿足網(wǎng)絡可視化要求的建筑物虛擬漫游;但對于碰撞檢測方面并沒有進行深入的研究,最后的效果不是非常理想,有待進一步的改進。

參考文獻

[1]周演,陳天滋.三維虛擬漫游技術的研究[J].計算機工程與設計,2009,30(5):1207-1211.

[2]都志輝.Java 3D編程實踐——網(wǎng)絡上的三維動畫[M].北京:清華大學出版社,2002.

[3]鮑彥如.Java 3D 創(chuàng)建虛擬現(xiàn)實世界探析[J].微計算機應用,2003,24(6):378-381.

[4]侯哲威,王青山,程輝.基于Java 3D的網(wǎng)絡地理信息可視化[J].測繪學院學報,2004,21(4):302-304.

[5]張緒冰,關澤群,張鐵良.基于Java 3D虛擬場景的關鍵技術[J].安徽農(nóng)業(yè)科學,2007(34):11328-11330.

[6]丁國棟,楊雪.用Java 3D實現(xiàn)Web虛擬現(xiàn)實的研究與實踐[J].中國教育技術裝備,2006(2):29-31.

[7]何同林,張緒冰.基于Java 3D三維虛擬場景的研究[J].計算機應用,2007,28(6):291-292.

[8]僧德文,李仲學,王紅霞.基于OpenGL的虛擬漫游技術研究及應用[J].金屬礦山,2007(9):84-86.

[9]陳光華,鄧奕,王京文,等.基于OpenGL可漫游虛擬場景的設計[J].微計算機信息,2008,24(24):310-311.

[10]劉海霞,李仁旺,楊貴,等.基于VRML與Java 3D的交互式虛擬物流系統(tǒng)[J].計算機工程,2008,34(21):259-261.

主站蜘蛛池模板: 国产真实乱人视频| 欧美精品导航| 国产精品13页| 精品一区二区三区自慰喷水| 国产亚洲精品资源在线26u| 97久久免费视频| 亚洲国产精品一区二区第一页免| 免费国产高清精品一区在线| 六月婷婷激情综合| 在线va视频| 福利视频一区| 2021国产v亚洲v天堂无码| 亚洲天堂.com| 一本大道香蕉高清久久| 国产精品无码一二三视频| 中文字幕久久波多野结衣 | 91精品在线视频观看| 黄色成年视频| 欧美日本一区二区三区免费| 日韩AV无码免费一二三区| 国产在线观看91精品亚瑟| 久久精品视频亚洲| 天天摸夜夜操| 国产欧美日韩va| 国产成人一区免费观看| 午夜小视频在线| 91亚洲国产视频| 国产v精品成人免费视频71pao| 无码高清专区| 国产视频大全| 色综合久久综合网| 毛片一区二区在线看| 日韩av无码精品专区| 欧美人与性动交a欧美精品| 国产午夜精品一区二区三区软件| 久久国产精品影院| 成人福利在线免费观看| 中国黄色一级视频| 成人国产精品一级毛片天堂| 亚洲精品国产精品乱码不卞| 亚洲免费三区| 色网站在线免费观看| 亚洲最新在线| 波多野结衣久久高清免费| 性做久久久久久久免费看| 成人亚洲视频| 无码 在线 在线| 99这里只有精品免费视频| 国产 在线视频无码| 8090成人午夜精品| 色欲综合久久中文字幕网| 91丝袜在线观看| 狠狠色综合网| 亚洲αv毛片| 国产亚洲精品自在久久不卡| 日韩一区精品视频一区二区| 欧美97欧美综合色伦图| 国产精品密蕾丝视频| 久久无码av三级| 五月激激激综合网色播免费| 久99久热只有精品国产15| 国产免费一级精品视频| 99久久精品视香蕉蕉| 国产91视频免费观看| 欧美综合区自拍亚洲综合天堂| 亚洲Av综合日韩精品久久久| 波多野结衣二区| 国产成人精品日本亚洲| 久久精品亚洲中文字幕乱码| 播五月综合| 欧美一级黄色影院| 日韩123欧美字幕| 国产麻豆aⅴ精品无码| 一区二区偷拍美女撒尿视频| 亚洲中文制服丝袜欧美精品| 亚洲精品图区| 精品一区二区无码av| 国产一区二区影院| 亚洲不卡无码av中文字幕| 91精品在线视频观看| 国产伦片中文免费观看| 国产亚洲精品97在线观看|