网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  x3d实战基础讲座之六     
  文章作者:未知  文章来源:水木森林  
  查看:99次  录入:管理员--2007-11-17  
 
  在x3d场景空间中,为了能够让浏览者方便地控制自己的观察位置和角度,x3d提供了视点节点viewpoint。同时为了能以不同方式来浏览,x3d提供了navigationinfo导航节点。

  下面就来介绍这两个节点的使用。

  一、viewpoint节点

  viewpoint节点指明了一个x3d场景空间中的观察位置和视角方向,其主要属性如下表如下:

属性含义默认值使用说明
description 视点的文字描述 -- 指定的视点描述文字将出现在其快捷菜单上
position 视点位置 0 0 10指定观察者所在的空间位置
orientation 视点方向0 0 1 0 前3个值是空间坐标点,该点和原点相连的线为方向轴,第4个值为旋转角度(以弧度为单位)
fieldofview变焦角度 0.785398 单位是弧度,取值范围0~3.14159,小的角度相当于长镜头, 大的角度相当于广角镜头。
jump 是否为跳转true 立刻转换到这个镜头设置 (jump值为true), 或平滑的动态转换到这个镜头(jump值为false)。该属性可能不起作用
centerofrotation旋转中心位置0 0 0 当导航为"examine"方式时,该点为转动中心


  简单的示例代码如下:

x3d实战基础讲座之六(图一)

  说明:上面代码是用来以不同方位观看圆柱体。代码中,最难理解的就是视点的位置和视角。默认时,我们的人眼是处在+z方向,当视点位置处在圆柱体后面时,即"back"视点,我们人眼观察方向仍然是向里的方向,必需由里向外观察才能看到圆柱体,因此我们将视角绕y轴旋转180度。同理可以理解top和left视点的设置。

  结果如下图所示。

x3d实战基础讲座之六(图二)

  在场景中右击鼠标后,弹出如图的快捷菜单,上述节点定义的视点名称出现该菜单中,如下图所示。

x3d实战基础讲座之六(图三)

  选择back后,场景自动动态变换,结果如下图所示:

x3d实战基础讲座之六(图四)

  类似的,top结果如下图所示。

x3d实战基础讲座之六(图五)

  若将back视点的fieldofview属性将原来默认的0.785398改为0.2,即:

x3d实战基础讲座之六(图六)

  则结果如下图所示,注意与前面的比较。

x3d实战基础讲座之六(图七)
  二、 导航

  x3d提供navigationinfo节点用来指定场景的观看方式和替身的物理特征。所谓替身就是当我们在场景快捷菜单中选择"显示替身"则会在场景中出现一个人物造型,如下图所示。不同的vrml浏览器插件所提供的替身造型是有所不同的。

x3d实战基础讲座之六(图八)

  navigationinfo节点属性如下:

x3d实战基础讲座之六(图九)

  说明:

  type用来设置在虚拟世界中导航类型和初始航行类型。type类型中共有"any"、"walk"、"examine"、"fly"和"none"五种选项供选择设定。

  any -- 任意模式。用来表示由浏览器自动选择对内容最合适的浏览航行方式,并可提供用户动态更换航行类型的用户界面。

  walk -- 行走模式。用来指定用户以步行的方式浏览vrml构建的虚拟世界,或者用放置在地面上或悬浮在地面上的交通工具来在虚拟世界探索航行。

  fly -- 飞行模式。功能与walk差不多,只是可以不用或者忽略重力或者随地形而更换运行方向。

  examine -- 检查模式。用来从各个角度观察个别物体的查看方式。

  none -- 无模式用来强制用户使用场景中提供的浏览机制进行浏览,可以去掉某些用不到的导航模式。

  另外,bs contact还提供平移漫游、游戏等模式。

  speed用来指定用户在虚拟世界中浏览场景的运行速度。speed速度的数值应为非负值,当设为0时表示用户在虚拟现实中浏览时的位置是固定的,但不影响用户在方向上和视野上的变化。speed属性的设置在type类型为"none"时无效。

  headlight用来指定浏览器是否需要打开一个总是指向用户注视方向的定向灯光,就像矿工头上的灯在黑暗中行走的效果一样。headlight属性有两个值,ture为设置有效,false为设置无效。

  avatarsize指定用户在vrml浏览场景时在虚拟世界中的物理尺寸,可用于碰撞检验和地形随动。默认值为[1.25,1.6,0.75],其中第一个数值1.25指定发生collision碰撞时用户与发生碰撞物体之间的允许距离;第二个数值1.6指定用户在虚拟世界中浏览作品时距离地面的height高度;第三个数值0.75指定用户在虚拟世界中浏览时step跨越的高度,以便我们能够尽可能模拟真实的人在现实世界中的攀登行为动作。

  visibilitylimit能见度限制属性用来设置用户在虚拟世界中浏览时能够看见的最远距离。数值为0时表示能看见无限远,visibilitylimit必须大于或者等于0。

  由于上述属性均可通过属性窗口的修改进行,因此这里不在给出相应的代码。值得一提的是,我们也可在场景快捷菜单中通过选择"移动"子菜单中的命令项进行上述导航操作,其"移动"子菜单内容如下:

x3d实战基础讲座之六(图十)

  在下一讲中,我们将讨论场景的光照效果。

 
 
上一篇: 学习,是一条漫长的道路    下一篇: jxta技术与应用发展慨述
  相关文档
java规则 中级篇 11-17
sort 方法 11-16
hibernate作为数据持久层的分析和研究 11-17
基于mvc模式struts框架研究与应用详解 11-16
请保持你对java的敏感度:了其然,知其用 11-16
实战 j2ee 开发购物网站 创建数据表 11-17
开发框架--hibernate为什么如此成功 01-15
通过实例论证j2me的事件传输机制 11-16
用j2me为手机diy一个顶牛牛游戏 11-17
java性能优化技巧集锦 11-16
用java写一个地图编辑器 11-17
?w???p??:java初始化??序 11-17
java反射技术(二) 11-17
建立一个安全的subversion服务器 11-17
如何在恰当的时间处理恰当的bug一(图) 11-17
java程序员认证模拟题及详细分析 11-17
solaris下nfs使用手册 11-17
今天学习到的java中的几个知识点 11-17
新手入门:对jsp中的内置对象简单概述 11-16
使用commons-pool写的数据库连接池 11-17
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息