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

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

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

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

關鍵詞: Java 3D; 虛擬漫游; 視點坐標; 網絡環境

中圖分類號: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

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

1 Java 3D

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

2 視點變化

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

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

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

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

3 建筑物漫游

利用上述的視點變換公式并結合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){

/*根據式(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){

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

}

If(press down key){

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

}

If(press right key){

/*根據公式(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的代碼可傳輸特性,可直接在瀏覽器中對建筑物進行虛擬漫游,很好地解決了網絡可視化的要求。

4 結 語

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

參考文獻

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

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

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

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

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

[6]丁國棟,楊雪.用Java 3D實現Web虛擬現實的研究與實踐[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的交互式虛擬物流系統[J].計算機工程,2008,34(21):259-261.

主站蜘蛛池模板: 亚洲第一视频免费在线| 久久人与动人物A级毛片| 性69交片免费看| 亚洲无码高清一区| 免费a级毛片18以上观看精品| 久久精品只有这里有| 99re在线免费视频| 日韩一区二区三免费高清| 欧美激情第一欧美在线| 91福利国产成人精品导航| 国产在线观看一区二区三区| 国产69精品久久久久孕妇大杂乱| 欧美日本中文| 一级毛片不卡片免费观看| 久久精品人妻中文系列| 性色一区| 亚洲欧美另类视频| 久久综合色天堂av| 欧美色99| 久久久噜噜噜久久中文字幕色伊伊| 亚洲成人在线免费观看| 无码国产偷倩在线播放老年人| 四虎成人精品在永久免费| 久久久受www免费人成| 99久久国产综合精品2020| 本亚洲精品网站| h网站在线播放| 亚洲精品亚洲人成在线| 亚洲Aⅴ无码专区在线观看q| 国产真实二区一区在线亚洲| 国产另类乱子伦精品免费女| 国产精品国产主播在线观看| 91精品国产福利| 国产精品亚洲va在线观看| 广东一级毛片| 麻豆国产精品| 国产综合亚洲欧洲区精品无码| 91精品国产自产91精品资源| 色综合久久综合网| 国产熟睡乱子伦视频网站| 99精品国产电影| 精品成人一区二区三区电影 | 欧美一级在线看| 三级欧美在线| 亚洲免费成人网| 中文成人无码国产亚洲| 亚洲av无码片一区二区三区| v天堂中文在线| 亚洲色图欧美在线| 国产成人精品一区二区三区| 久久久久无码国产精品不卡 | 毛片网站观看| 2021国产精品自拍| 美女被操黄色视频网站| 欧美日韩激情在线| 亚洲日产2021三区在线| 东京热av无码电影一区二区| 国产不卡一级毛片视频| 国产日韩欧美在线视频免费观看| 国产精品福利在线观看无码卡| 亚洲无码高清免费视频亚洲| 亚洲国产成熟视频在线多多| 91美女视频在线| 国产xxxxx免费视频| 国产精品天干天干在线观看 | 一边摸一边做爽的视频17国产| 国产在线91在线电影| 欧美一级99在线观看国产| 国产 日韩 欧美 第二页| 91午夜福利在线观看| 亚洲美女一级毛片| 欧美怡红院视频一区二区三区| 欧美成a人片在线观看| a免费毛片在线播放| 国产高清无码麻豆精品| 国产噜噜噜视频在线观看| 亚洲男人的天堂久久香蕉| 成AV人片一区二区三区久久| 黄色污网站在线观看| 国产青青草视频| 露脸真实国语乱在线观看| 美女免费黄网站|