- 最后登录
- 2013-6-5
- 注册时间
- 2011-12-3
- 阅读权限
- 90
- 积分
- 6206
- 纳金币
- 6206
- 精华
- 0
|
在虚拟场景中实现交互性操作的具体手段可以是通过HTML页面的控件或VRML文件中的节点。前者一般是在二维网页上进行超级链接,后者是单纯地在VRML文件中用VRML父节点控制其它VRML子节点的活动。
VRML中的交互功能通常是通过一系列检测器节点来实现的,触动监测器的是检测到的用户触动动作,这些检测器包括TouchSensor、PlaneSensor、CylinderSensor和SphereSensor节点。除此之外,能实现交互功能的节点还有感知检测器,它们的功能是用来感知用户与造型的接近程度,包括VisbilitySensor、ProximititySensor 和Collision节点。
选择检测器时要考虑相关的动作类型,如要获取观察者的位置和可见度的信息,可以使用Proximitysensor和VisibilitySensor;要滚动、转动或拖动几何体,可以使用Spheresensor,Cylindersensor和PlaneSensor;TouchSensor则可用于获取鼠标信息。
VRML为Java script、Java等语言提供了灵活的编程嵌入接口。在URL域中即可以直接写入程序源代码,也可以指定程序文件的源地址。在VRML2.0中并没有规定具体的编程语言,用户可以根据自身情况灵活地选择 VRML script,Java script或Java。
为了可以细致地进行观察,应适当地设置视点。设置视点时要用到Viewpoint节点,例如下面这段代码:
Viewpoint{description‘view1’
position 0 1 0
orientation 0 0 1 1.57
fieldOfView 0.785398
jump FALSE }
description定义了视点的名称‘view1’,position给出场景中观察者的位置,orientation指定场景中观察者的空间朝向,前三(0 0 1)位是视点的方向值,最后一位(1.57)则定义了旋转的角度,fieldOfView给出的是以弧度为单位的视角值,在0.0至3.14间,默认值为0.785398,即45°角。代码最后的jump是个开关值,TRUE表示跳跃视点,FALSE是非跳跃视点。 |
|