Graphics 版 (精华区)

发信人: leonado (##小:妖:发:呆:勒##), 信区: Graphics
标  题: 虚拟现实之高级技巧(五)
发信站: 哈工大紫丁香 (2001年01月07日19:21:20 星期天), 转信

在上一篇我们介绍了script结点与Java程序之间的结合情况,在这一篇中我们和大家谈
谈如何通过Java程序控制几个为场景产生交互的主要结点,以及它们是如何通过script
结点来传递和接收程序运行结果的。
  如果细心的读者应该看到了,在上一篇文章中的交互的变化球体的颜色例子中,我
们用到了一个TouchSensor结点,大家都知道这个节点是捕捉鼠标的移动并且响应鼠标事
件的,在上一个例子中,我们通过IsAction字段来判断TouchSensor的状态,单击鼠标球
体变色,这是一个不连续的事件,但是大家千万不要以为TouchSensor只能产生不连续事
件的响应。它能够响应鼠标的所有事件,当鼠标移动时hitNormal_changed、hitPoint_
changed、hitTexCoord_changed等事件将产生,具体来说,我们可以通过TouchSensor的
IsOver来判断时候鼠标在物体上,HitPoint又可以记录鼠标在物体上的具体座标,HitT
exCoord用来记录座标结构,也就是说是坐标系的类型,HitNormal用来记录表面矢量,
就是用来记录方向。使用这几个事件与Java程序结合,我们可以创造很多效果,比如说
,在场景中用户用鼠标推动一个物体的运动。
  然而大多数的运用都是touchtime不连续事件,就是鼠标按下再松开时产生的事件,
它激活一个timestamp时间事件,原来我们没有使用Java程序时,我们定制一段动画用鼠
标来控制播放。就是场景中有一台电视,我们通过用鼠标按下开关,使电视开始播放一
段动画,制作很简单,由于篇幅有限我们在这里只和大家讨论一下工作原理。先在场景
中预设一段动画,设置从StartTime开始,到StopTime结束。StartTime事件由鼠标touc
htime的touchtime事件触发,所以当鼠标按下开关,电视开始播放动画。但是这种通过
TimeSensor和插入器实现简单动画有着很大的局限性,就是用户与场景的互动已经被固
定在原先设定好了的路径上面,自然的这里我们又需要使用Java。

--
美女说:“小妖,你很可爱丫...”
小妖刚要把那段“我已经尽可能的掩饰我的锋芒,奈何还是被慧眼人看出”云云背出来...
美女却扬长而去...>Q<

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.230.141]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:12.029毫秒