X3D实战基础讲座之十一 - 编程入门网
将当前位置保存在offset中来实现在两次拖动之间跟踪当前位置(True表示跟踪)。若autoOffset值为False,则用户每次开始新一轮拖动时,被拖动的几何体都自动先复位到初始位置。
isActive -- 指示定点设备当前按钮是否按下。此事件仅当按钮被按下或释放时才发出,拖动期间则不生成。 isOver -- 当指点设备移动过传感器表面时发送事件。 trackPoint_changed -- 拖动期间任何给定时刻用户的定点设备在xy平面上的实际点(忽略 minPosition和 maxPosition)。 translation_changed -- 拖动期间任何给定时刻用户的定点设备在xy平面上的锁定点(受限于minPosition和 maxPosition)。 示例如下: 结果如下: 说明:当拖动小立方体的时候,无论如何也出不了白色的矩形框。 X3D实战基础讲座之十一(4)时间:2010-07-19三、SphereSensor(绕点旋转感器)节点 SphereSensor节点将二维的拖动解释为三维空间中绕局部原点的旋转。若在该节点的兄弟几何体处按下鼠标,浏览器会以点击鼠标的点到原点的距离为半径作一个想象中的球。随后的拖动将解释为旋转球体。它的主要域或事件如下: description -- 这个节点功能的文字提示。 enabled -- 设置传感器节点是否有效。默认值为True。 offset -- 在一次拖动后,相关几何体相对于初始位置的旋转角度。 autoOffset -- 设置为True,表示在拖动结束时,将当前的方位值存储到offset中,若autoOffset设置为False,在用户每次开始一个新的托动时,几何体复位到初始值。 isActive -- 当点击或移动鼠标(指点设备时)发送事件。按下鼠标主键时isActive=True, 放开时isActive=False。 isOver -- 当指点设备移动过传感器表面时发送事件。 trackPoint_changed -- 用户在拖动过程中任意时刻定点设备在假想的球体表面上的实际位置。 rotation_changed -- 用户在拖动过程中任意时刻假想球体的当前朝向。 示例如下: 结果如下: X3D实战基础讲座之十一(5)时间:2010-07-19四、CylinderSensor(Y轴旋转传感器)节点 CylinderSensor节点把二维的拖曳输入(如拖曳鼠标)转变为三维空间中沿y轴的旋转。其主要域或事件如下: description -- 这个节点功能的文字提示。 enabled -- 设置传感器节点是否有效。默认值为True。 minAngle -- 允许旋转的最小角度(旋转角小于此范围时,仍被限制在这一范围内)。 maxAngle -- 允许旋转的最大角度(旋转角大于此范围时,仍被限钳制在这一范围内)。 diskAngle -- 决定节点动作是像一个圆柱或像磁碟绕y轴旋转。若用户在圆柱轴附近点击,传感器的兄弟几何体的动作像磁碟转动,否则像圆柱一样转动。 offset -- 指出从初始方向转动的角度值。 autoOffset -- 指出是否在每次拖动完成后将当前的方向角存入offset域,以达到跟踪当前方位的目的。如果autoOffset是False,每当用户开始一个新的拖动动时,被拖动几何体恢复至最初的方位。 isActive -- 当点击或移动鼠标(指点设备时)发送事件。按下鼠标主键时isActive=True, 放开时isActive=False。 isOver -- 当指点设备移动过传感器表面时发送事件。 说明: 如果用户点中圆柱的顶或低面,拖曳动作就会被解释为和旋转一个平面圆盘一样。如果用户点中圆柱的侧面部分,拖曳动作就会被解释为旋转这个圆柱。如果仅仅对特殊的旋转范围有兴趣,可以通过设置minAngle和maxAngle的值把旋转限制在那一范围内。如果minAngle大于maxAngle,就没有任何限制了。 在上述代码中,只要将SphereSensor节点改成CylinderSensor节点就可以了,因此这里不再举例。 除了上述传感器外,X3D还有VisibilitySensor、ProximitySensor等感知传感器,这里不再介绍。在下一讲中,我们将讨论X3D的嵌入脚本编程技术。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |