VRML VRML 交互交互 VM VM VM VM 造型的交互效果造型的交互效果 VRML 场景中的造型能够对浏览者的动作做出反应, 称之为交互功能。 VRML 使用 7 种传感器节点完成感知和反应的交互功能(时间传感器除外): ?触摸传感器 TouchSensor ?平面传感器 PlaneSensor ?圆柱体传感器 CylinderSensor ?球体传感器 SphereSensor ?接近传感器 ProximitySensor ?可视传感器 VisibilitySensor ?碰撞传感器 CollisionSensor VM VM VM VM ( ( 1 1 )触摸传感器)触摸传感器 TouchSensor TouchSensor TouchSensor enabled #设定传感器的开与关 isOver #当用户移到鼠标到被感应的三位造型上,引发 isOver = True 事件;反之,离开造型时,引发 isOver = False 事件 isActive #表明是否在被感应的造型上按下鼠标 touchTime # isOver = True , isActive = False 时,引发该事件。发送当前时间。 hitPoint_changed #单击鼠标,发送造型上点击处的坐标 hitNormal_changed # hitPoint_changed 所指定点的法向量 hitTexCoord_changed # hitPoing_changed 指定点的纹理坐标触摸传感器 TouchSensor (接触型传感器节点)用于感知用户鼠标触发的动作(当用户用鼠标触摸、单击、按下、松开被感应造型) 。 eventOut 事件 VM VM VM VM 创建一个长方体,使得当浏览者的光标移到长方体上时,时该长方体就开始旋转触摸传感器示例触摸传感器示例( ( eg4_7 eg4_7 ) ) VM VM VM VM touchTime 当 isOver = True , isActive = False 时,引发该事件。发送当前时间。常用这个事件来控制当用户点击鼠标左健放开后触发的动作。 VM VM VM VM 利用触摸传感器节点,对椭圆球位移动画进行控制。 VM VM VM VM aa bb 触摸传感器示例 aa为触摸传感器对应的被感知的几何造型。触动传感器监视的几何体是传感器的兄弟几何体(传感器父组节点的所有子节点)。 VM VM VM VM ( ( 2 2 )平面传感器)平面传感器 PlaneSensor PlaneSensor 平面传感器节点( PlaneSensor ) 用于感知用户在 X-Y 平面鼠标拖拽的动作。(被感知几何造型感应到鼠标的拖动行为,进而改变对象的位置)。域、事件域值 域、事件类型 offset 0 0 0 exposed field SFVce3f maxPosition -1 -1 exposed field SFVce2f autoOffset TRUE exposed field SFBool minPosition 0 0 exposed field SFVce2f isActive eventOut SFBool trackPoint_changed eventOut SFVec3f enabled TRUE exposed field SFBool translation_changed eventOut SFVec3f VM VM VM VM 示例: 示例: ( ( eg4_8 eg4_8 ) ) translation _changed 出事件: 当用户用鼠标拖拽被感应造型时,传感器不断输出该事件。发送的事件值为造型移动点的坐标。若使用 translation _changed 此事件,则传感器将受 minPosition 和 maxPosition 域值对移动范围的限制。而使用 trackPoint_changed 事件时, 则传感器将忽略 minPosition 和 maxPosition 域值对移动范围的限制。 VM VM VM VM ( ( 3 3 )圆柱体传感器)圆柱体传感器 CylinderSensor CylinderSensor 域事件域值 域、事件类型 enable TRUE # expected field SFFBool maxAngle -1 # expected field SFFloat minAngle 0 # expected field SFFloat diskAngle # expected field SFFloat offset 0 # expected field SF
5 VRML交互 来自淘豆网m.daumloan.com转载请标明出处.