735929d4182482be7f62e0f00eb8ef62.png点击上方“蓝字”关注我们 f764de5af5f1524604213138a1c6c9c8.png a7794a0a072e238b5148813d0347a45e.png目录

dda770754aca22dcfe10e80244d8c6f6.png

a7794a0a072e238b5148813d0347a45e.png系统设计

    互联网的出现及飞速发展使IT业的各个领域发生了深刻的变化,它必然引发一些新技术的出现。3D图形技术并不是一个新话题,在图形工作站以至于PC机上早已日臻成熟,并已应用到各个领域。然而互联网的出现,却使3D图形技术发生了和正在发生着微妙而深刻的变化。Web3D协会(前身是VRML协会)最先使用Web3D术语,这一术语的出现反映了这种变化的全貌,没有人能严格定义Web3D,在这里我们把Web3D理解为:互联网上的3D图形技术,互联网代表了未来的新技术,很明显,3D图形和动画将在互联网上占有重要的地位。

Java3D API是Sun定义的用于实现3D显示的接口。使用Java 的重要理由之一是它的平台无关性。Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2SE、J2EE的整套架构,这些特性保证了Java3D技术强大的扩展性

本文以Java3D为开发平台,利用Java语言强大的网络功能,实现了在网页上对3D动画进行显示和操作。

a7794a0a072e238b5148813d0347a45e.png系统实现

当前,互联网上的图形仍以2D图像为主流。但是,3D图形必将在互联网上占有重要地位。互联网上的交互式3D图形技术--- Web3D正在取得新的进展,正在脱离本地主机的3D图形,而形成自己独立的框架。互联网的需求是它发展的动力。互联网的内容提供商和商业网站不断使用新的工具与技术使网站更具吸引力,Web3D图形是最新的和最具魅力的技术。Web3D图形将在互联网上有广泛应用,从目前的趋势来看主要有:

1.电子商务:

用3D图形展示商品,更能吸引客户。虚拟商场是人们热中的话题。客户可以在虚拟商场中漫游,挑选商品。许多Web3D图形技术的软件厂商是瞄准了电子商务的,如cult3D和viewpoint,其图形技术主要是用于商品的3D展示,您甚至于可以在网上操作或使用要购买的商品。然而,Web3D图形的商业利益究竟有多大,网上的商品销售商只有在能增加销售额的情况下,才肯出资制作Web3D图形。

2. 联机娱乐休闲与游戏:

多用户联机3D游戏将搬上互联网,现在您已经可以在网上经历简单的赛车或空中射击游戏,下载文件不超过2M。当然,如果您想运行大的联机游戏仍然需要CD-ROM的支持。娱乐休闲网站对Web3D图形有更多的需求,如:城市景观或风景点的虚拟旅游,虚拟博物馆,展览会,艺术画廊等等。

3. 医学:

医疗培训,医疗商业的B2B和B2,许多医学图像的处理将使用Web3D图形技术。

4. 地理信息系统的数据可视化:

将GIS与Web3D结合起来,可以在互联网上建立许多应用系统,如地图,导游,城市建设,交通运输等等。

5. 多用户虚拟社区(virtual-community):

虚拟社区是建立一个大型的虚拟场景,每个虚拟场景的访问者都可以指定一个"替身", "替身"在场景中可以漫游。当几个远程访问者同时访问虚拟社区时,它们可以用语音或文字通讯。虚拟社区可以是一个会场,教室,俱乐部,展览会,画廊等。它真正实现了虚拟现实,在互联网上仿真虚拟社会的各种活动,分布在世界各地的人可以借助互联网开展各种文化科技,娱乐活动。而此时虚拟场景就是他们的三维环境。虚拟社区很可能是Web3D图形在互联网上的一种主要应用形式。

现在,已有几家公司推出了自己虚拟社区及全套的解决方案,如Blaxxun, Adobe Atmosphere. Geometrek ,Cybertown, OuterWorlds, berkom ,ActiveWorlds,iCity,pointworlds等。它们除了提供虚拟场景制作以外,还提供:服务器管理,通讯管理,用户管理等功能。Blaxxun公司Virtual Worlds Platform 5.1服务器已经有许多网站用它建立虚拟社区。

a7794a0a072e238b5148813d0347a45e.png源文件

基本形体的生成

和VRML不同,JAVA3D没有基本形体类,因而在程序中无法直接生成大量应用的基本形体,如BOX、CONE、SPHERE等。我们可以通过复杂的编程生成这些基本形体,也可以直接调用JAVA3D为我们提供的geometry classes,利用它生成程序所需要的BOX、COLORCUBE、CONE、SPHERE、CYLINDER。下面是这些基本体的生成方法。

3.2.1平板的生成

UTILITY里BOX的构造函数有:

1.Box():成一个各边尺寸均为2的BOX,要说明的是,BOX、COLORCUBE、SPHERE的坐标原点均在其中心点,CONE、CYLINDER的则在其轴线的中点上。

2. Box(float xdim, float ydim, Appearance ap) :成一个给定尺寸、给定外观属性的BOX ,例Box(.5f, .6f, .4f, myApp)

3. Box(float xdim, float ydim, float zdim, int primflags, Appearance ap):生成一个有特定说明的BOX,例如:Box(.4f,.6f,.3f,Primitive.ENABLE_APPEARANCE_MODIFY, ap)表示程序在运行时可以改变其外观属性。

3.2.2 立方体的生成

UTILITY里COLORCUBE的构造函数有:

1. ColorCube()

生成一个边长均为2的COLORCUBE

1. ColorCube(double scale)

将边长均为2的COLORCUBE按比例放大缩小。

3.2.3 圆锥的生成

UTILITY里CONE的构造函数有:

1. public Cone()

生成一个底半径为1,高为2的CONE。

2. Cone (float radius, float height)

3. Cone (float radius, float height, int primflags,  Appearance ap)

4. Cone(float radius, float height, int primflags,  int xdivision, int ydivision, Appearance ap)

这里,xdivision、ydivision可用来表示圆锥的显示是高精度的显示,或是底精度的显示,缺省时的中等精度时xdivision = 15; ydivision = 1; 我们可利用这两个参数来改变显示的效果,使显示圆锥的三角片更多或更少些。

3.2.4 球体的生成

 UTILITY里SPHERE的构造函数有:

1. Sphere()

生成一个半径为1的SPHERE。

2. Sphere (float radius)

3. Sphere (float radius, Appearance ap)

4. Sphere(float radius, int primflags, Appearance ap)

5. Sphere(float radius, int primflags, int divisions)

6. Sphere(float radius, int primflags, int divisions, Appearance ap)

这里,divisions的作用和圆锥的xdivision、ydivision相似。

3.2.5.圆柱体的生成

 UTILITY里CYLINDER的构造函数有:

1. Cylinder() 

生成一个底半径为1,高为2的CYLINDER。

2. Cylinder (float radius, float height) 

3. Cylinder (float radius, float height, Appearance ap)

4.  Cylinder (float radius, float height, int primflags, Appearance ap) 5.  Cylinder(float radius, float height, int primflags,  int xdivision, int ydivision, Appearance ap)

14edf668700c748fa1086eb005c98868.png

c4b8a086e4aefd36f01e8244133d2e36.png

cc73c22dabd971dbc4b8f28c7b8a452f.gif

详情请关注小编继续了解,免费赠送源代码与论文哦!

计算机毕业设计(源程序+论文+开题报告+文献综述+翻译+答辩稿)

联系QQ:2932963541进行咨询

694326d227f07eedd993fd8a74b5e73f.png f686edfd6e8eacaa7bc6f481eb6d98c7.png 网站地址: http://www.webtmall.com/ 扫码关注最新动态更多精彩,点击下方“
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐