




已阅读5页,还剩122页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
虚拟现实技术 6动态感知虚拟现实节点 在VRML中 最具特色的 节点 就是具有动态 交互和感知特性的节点 其中包括TimeSensor时间传感器节点动画插补器节点触摸节点感知节点等 动画插补器节点 在VRML中 动画插补器节点可以实现模拟大干世界万物的变化 包括的动画控制节点有 PositionInterpolator位置插补器OrientationInterpolator朝向插补器节ScalarInterpolator标量插补器节点ColorInterpolator颜色插补器节CoordinateInterpolator坐标插补器NormalInterpolator法线插补器节点 触摸节点 VRML触摸节点在路由的作用下 动画插补器节点联合使用可以产生更加生动 逼真的动态交互效果 使观测者有身临其境的感觉 触摸节点有 由TouchSensor触摸传感器节点PlaneSensor平面检测器节点CylinderSensor圆柱检测器节点SphereSensor球面检测器节点 感知节点 VRML感知节点已具有初级智能作用 是VRML最具代表性节点 也是非常重要的节点 感知节点包括 VisibilitySensor能见度传感器节点ProximtitySensor亲近度传感器节点Collision碰撞传感器节点 6 1时间传感器节点 在现实世界中 万物的变化往往是自动的 而且是有一定规律的 即不是随人的意志而改变 这就需要在VRML虚拟世界中 创建出能自动变化而不需要人为改变的造型 我们可以通过设定时间按某种规律变化来控制造型变化 而控制时间按某种规律变化最常见的就是时间传感器 TimeSenor时间传感器节点的作用就是创建一个虚拟时钟 并对其他节点发送时间值 控制VRML立体空间的动态对象的开始 变化和结果过程的时间 实现空间物体造型的移动 变色 变形等自动变化 TimeSensor时间传感器又包含绝对时间 AbsoluteTime 和部分时间 FractionalTime 两个概念 绝对时间是以秒为单位计算的 在绝对时间内 1秒发生在绝对日期的时间经过1秒之后 如2003年6月16日08点58分59秒 经过1秒钟变为2003年6月16日08点59分 部分时间又称相对时间 是空间物体运动从某一时刻0 0开始运动一直到1 0为止 从0 0时刻到1 0时刻称为相对时间 相对时间的差可以是绝对时间的30秒 10分钟或1小时等 这段时间差也称为动态对象的运动周期 TimeSensor时间传感器节点在VRML中并不产生任何造型和可视效果 其作用只是向各插补器节点输出事件 以使插补器节点产生所需要的动画效果 该节点可以包含在任何组节点中作为子节点 但独立于所选用的坐标系 TimeSensor时间传感器节点语法结构 TimeSensor节点语法 TimeSensor enableTRUE exposedFieldSFBoolstartTime0 0 exposedFieldSFTimestopTime0 0 exposedFieldSFTimecycleInterval1 0 exposedFieldSFTimeloopFALSE exposedFieldSFBoolisActive eventOutSFTimeTime eventOutSFTimecycleTime eventOutSFTimefraction changed eventOutSFFloat 域名和域值详解 cycleInterval域的域值定义了一个时间长度 用来说明这个时间传感器从0 0时刻到1 0时刻之间的周期间隔 单位为秒 该域值必须大于0 0 其默认值为1 0秒 Enabaled域的域值定义了时间传感器的打开或关闭 该域值为布尔量 若为TRUE 时间传感器被打开 若为FALSE时 时节传感器被关闭 其默认值为TRUE loop域的值定义了时间传感器是否循环输出 该域值为布尔量 如果为TRUE 则时间传感器会自动循环 一直到停止时间为止 如果为FALSE 时间传感器不循环 只经过一个周期后 就会自动停止 其默认值为FALSE 4 startTime域的值定义了时间传感器开始输出事件的时间 绝对时间 该域值的默认值为0 0秒 5 stopTime域的值定义了时间传感器停止输出事件的时间 绝对时间 该域值的默认值为0 0秒 上述startTime和stopTime cycleInterval和loop域值共同控制着时间传感器的事件输出 当这4个域同时使用时 根据这4个域值之间的关系 决定时间传感器的工作状态 6 2VRML动画控制节点 在VRML中 动画控制节点是用来实现动画效果的 在现实世界中 万物都是在变化着的 如太阳的升落 树叶由绿变黄等 这些都是自然界中实现的动画效果 在VRML中也可以实现同样动画效果 使VRML世界更加生动 真实 VRML提供了多个用来控制动画的插补器 插补器 Interpolator 节点是为线性关键帧动画而设计的 其采用一组关键数值 且每个关键值对应一种状态 这个状态允许以各种形式表示 如SFVec3f或SFColor 浏览器会根据这些状态生成连续的动画 一般来说 浏览器在两个相邻关键帧之间生成的连续帧是线性的 插补器节点可根据其所插值的类型不同分为6种 位置插补器 PositionInterpolator 朝向插补器 OrientationInterpolator 颜色插补器 ColorInterpolator 标量插补器 ScalarInterpolator 坐标插补器 CoordinateInterpolator 法线插补器 NormalInterpolator 6 2 1PositionInterpolator位置插补器节点 PositionInterpolator位置插补器节点是空间造型位置移动节点 用来描述一系列用于动画的关键值 使物体移动形成动画 该节点不创建任何造型 在一组SFVec3f值之间进行线性插值 适合于对于平移进行插值 PositionInterpolator位置插补器节点语法结构如图 PositionInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的值定义了一张变化时刻关键值列表 每一个时间值都代表全部动态时间中的一个相对时间 每个时刻值一般在0 0与1 0之间 并且由0依次到1 然而关键时刻值可以是任意大小的正值或负值 但必须以递增的顺序排列 其默认值是一张空列表 2 keyValue域的值定义了一组三维坐标值列表 每一组坐标值都对应key域值中的一个相对时间段 其默认值是一张空列表 事件说明 1 set fraction为入事件 eventIn 当接收到一个时刻值时 PositionInterpolator节点计算出基于关键位置表和相关的关键时刻的一个位置 并通过value changed事件出口输出新的位置列表 2 value changed为出事件 eventOut 将信息传送给目标节点 传递内容为一组方位值 为了更好的理解 掌握和控制动画的插补器实现动画过程 结合下面实例将动画所需时间传感器相对时间的逻辑值和空间坐标的位置值对应起来 如图6 3所示 再结合空间物体造型的立体空间坐标示意图 如图6 4所示 可以更好的理解和掌握VRML具有动态交互的各个节点 相对时间的逻辑值空间坐标的位置对应值 图6 4立体空间物体造型移动轨迹的立体空间坐标示意图 使用位置插补器节点 引入VRML飞碟空间造型 在时间传感器与位置插补器共同作用下 使飞碟沿着指定路径飞驰 从坐标原点出发 经过曲折的路径最后返回原点 并循环往复运行 实例6 1 路由把每一个节点联系起来 其中 fraction changed为时间传感器的出事件传送给位置插补器节点的set fraction入事件 然后再由位置插补器节点的value changed出事件传递给立体空间造型飞碟中坐标变换节点的暴露域set translation入时间 从而实现飞碟的飞行 飞碟如何运动 范例6 2 6 2 20rientationInterpolator朝向插补器节点 0rientationInterpolator朝向插补器节点是方位变换节点 用来描述一系列在动画中使用的旋转值 该节点不创建任何造型 可以在不同时刻旋转到所对应的方位 朝向 通过使用该节点 可以使造型旋转 orientationInterpolator朝向插补器节点语法结构 OrientationInterpolator节点语法 OrientationInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的域值定义了一组相对时间间隔的时间关键值 时间值一般在0 0和1 0之间 并且由0依次到1以递增的顺序排列 其默认值是一张空列表 2 keyValue域的域值定义了一个三维旋转关键值的列表 每一个旋转关键值是一个4个值的组 前3个值指定了一个旋转轴的X Y和Z分量 第4个值指定了旋转轴的一个旋转角度 其默认值是一张空列表 1 set fraction为入事件 eventIn 当接收到一个时刻值时 OrientationInterpolator朝向插补器节点根据关键时刻列表和其对应关键旋转列表计算出一个关键旋转子列表 并通过value changed事件出口输出新算出的旋转列表 2 value changed为出事件 eventOut 把信息传送给目标节点 传递内容为一组方位值 在蓝色背景下 使用时间传感器节点 内联节点和朝向插补器节点使飞船沿Y轴旋转180 且循环执行 vrml6 3 wrl 6 2 3ScalarInterpolator标量插补器节点 ScalarInterpolator标量插补器节点是强度变换动态节点 描述的是在动画中使用的一系列关键值 该节点不创建任何造型 在一组SFFloat值之间进行线性插值 这个插值适合于用简单的浮点值定义的任何参数 使用ScalarInterpolator标量插补器节点和TimeSensor时间传感器节点来改变光线节点中的Intensity域的域值 光线强度 使光线强度随时间的改变而变化 实现动态效果 ScalarInterpolator标量插补器节点语法结构 ScalarInterpolator节点语法 ScalarInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的域值提供了一组时间关键值列表 每个时间值代表一个相对时间段的值 该时间值一般在0 0和1 0之间 但必须以递增的顺序排列 其默认值是一张空列表 2 keyValue域的值指定了一系列三维坐标值 每一组坐标值都对应key域的域值中的一个相对时间段的值 其默认值为一个空的序列 1 set fraction为入事件 eventIn 当收到一个时刻值时 ScalarInterpolator节点根据关键值的序列和它们对应的关键时刻值 计算一个浮点值 并通过value changed事件出口输出计算后的浮点值 2 value changed为出事件 ewntOut 它把信息传送给目标节点 传递内容为一组方位值 ScalarInterpolator节点还可以用来控制VRML造型的透明度 通过控制Mateirial节点的transparency域值 使造型的透明度改变 vrml6 4 wrl 在立体空间背景下 利用方向光源节点 时间传感器 内联节点和标量插补器节点 使平行光源的光照强度发生变化 创建动态视觉效果 vrml6 5 wrl 让空间球体的透明度发生变化 从而使哑铃的可见度也发生变化 6 2 4ColorInterpolator颜色插补器节点 ColorInterpolator颜色插补器节点是用来表示颜色间插值的节点 使立体空间场景与造型颜色发生变化 该节点并不创建造型 在VRML场景中是看不见的 该节点可以作为任何编组节点的子节点 但又独立于所使用的坐标系 即不受坐标系的限制 ColorInterpolator颜色插补器节点语法结构 ColorInterpolator节点语法 ColorInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的域值提供了一组时间关键值列表 每个时间值代表一个相对时间段的值 该时间值一般在0 0至1 0之间 但必须以递增的顺序排列 其默认值是一张空列表 2 keyValue域的值指定了一系列三维坐标的关键RGB色彩值 每个RGB色彩都是由在0 0至1 0区间内的3个浮点数所表示的 它们分别表示混合色中红 绿 蓝的数值 每一组坐标值都对应key域的域值中的一个相对时间段的值 其默认值为一张空列表 1 set fraction为入事件 eventIn 当收到一个时刻值时 ColorInterpolator颜色插补器节点就在关键色彩值和它们相应的关键时间值的基础上计算出一个RGB色彩值 并通过value changed出事件输出该RGB色彩值 2 value changed为出事件 eventOut 用来输出计算后的RGB色彩值 实例6 6 利用方向光源节点 时间传感器节点 内联节点及颜色插补器节点来改变颜色 实现动态控制颜色的变化的效果 并在场景中利用路由控制和传递信息 vrml6 6 wrl vrml6 7 wrl 6 2 5CoordinateInterpolator坐标插补器节点 CoordinateInterpolator坐标插补器节点是表示坐标插值的节点 该节点在一组MFVec3f值之间进行线性插值 通过使用该节点 可以使一个造型的组成坐标发生变化 同ColorInterpolator节点一样 CoordinateInterpolator节点也不创建任何造型 在VRML场景中也是不可见的 坐标插补器的作用是利用坐标点的移动实现动画 通过使用CoordinateInterpolator节点 可使VRML中的物体造型上的各个坐标点形成独自的运动轨迹 可以使物体造型改变运动方向 CoordinateInterpolator坐标插补器节点语法结构 CoordinateInterpolator坐标插补器节点语法 CoordinateInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的域值提供了一组时间关键值列表 每个时间值代表一个相对时间段的值 该时间值一般在0 0至1 0之间 但必须以递增的顺序排列 其默认值是一张空列表1 2 keyValue域的值指定了一系列三维坐标的列表 每一个坐标都包含3个浮点数值 分别为向量的X Y和Z分量 每一组坐标值都对应key域的域值中的一个相对时间段的值 其默认值为一张空的列表 1 set fraction为入事件 eventIn 当收到一个时刻值时 CoordinateInterpolator节点就依据关键时刻列表和它们相对应的关键坐标子列表计算出一张坐标的子列表 并通过value changed出事件输出新的坐标列表 2 value changed为出事件 eventOut 用来输出计算后的新的坐标列表值 实例6 8 使用坐标插补器节点和时间传感器节点 并利用面节点控制面的尺寸大小 从而使立体空间造型产生循环运动的动画效果 也可以使造型畸形变化 vrml6 8 wrl vrml6 9 wrl 6 2 6NormalInterpolator法线插补器节点 NormalInterpolator法线插补器节点可以改变法向量Normal节点中vector域的域值 vector域的域值定义了一个法向量列表 XYZ 法向量Normal节点是面节点和海拔栅格节点中的一个节点 NormalInterpolator法线插补器节点在时间传感器的配合下 产生虚拟世界的各种逼真的动感效果 NormalInterpolator法线插补器节点语法结构 NormalInterpolator法线插补器节点语法 NormalInterpolator key exposedFieldMFFloatkeyValue exposedFieldMFVec3fset faction eventInSFFloatvalue changed eventOutSFVec3f 域名和域值详解 1 key域的域值提供了一组时间关键值列表 每个时间值代表一个相对时间段的值 该时间值一般在0 0至1 0之间 但必须以递增的顺序排列 其默认值是一张空列表 2 keyValue域的值指定了一系列法向量列表 每一个坐标都包含3个浮点数值 分别为向量的X Y和Z分量 每一组坐标值都对应key域的域值中的一个相对时间段的值 其默认值为一个空的列表 1 set fraction为入事件 eventIn 当收到一个时刻值时 NormalInterpolator法线插补器节点就依据关键时刻列表和它们相对应的关键法向量列表计算出一个法向量子列表 通过 如echanged出事件输出新的法向量列表 2 value changed为出事件 eventOut 用来输出计算后的新法向量列表值 实例6 10 在蓝色立体空间背景下 利用模型节点 面节点 时间传感器节点及法线插补器节点使立体空间造型的两个垂直面在法向量的控制下产生变化的效果 vrml6 10 wrl 6 3VRML触摸检测器节点 实现VRML的交互功能 需要设计触动检测器或传感器 在VRML虚拟世界中 用户与虚拟现实世界之间的交互是通过一系列检测器节点来实现的 通过使用这些检测器节点 使浏览器感知用户的各种操作 比如开门 旋转 移动和飞行等 这样用户就可以和VRML虚拟世界中的三维对象直接进行交互 触动检测器是用来检测用户的触动动作的 其中包括TouchSensor节点Planesensor节点CylinderSensorr节点SphereSensor节点等 6 3 1TouchSensor触摸传感器节点 TouchSensor触摸传感器节点是浏览者与虚拟对象之间相接触型传感器节点 TouchSensor触摸传感器节点创建了一个检测用户动作并将其转化后输出 以触发一个动画的检测器 它用来测试用户触摸事件的检测器 该节点可以为任何成组节点的子节点 并感知用户对该组节点的动作 TouchSensor触摸传感器节点语法结构 TouchSensor节点语法 触摸传感器节点 TouchSensor enableTRUE exposedFieldSFBoolisActive eventOutSFBoolisOver eventOutSFBooltouchTime eventOutSFVec3fhitPoint changed eventOutSFVec3fhitNormal changed eventOutSFVec3fhitTexcood changed eventOutSFVec3f 域名和域值详解 enabled域的域值定义了一个开关 即是否激活触摸传感检测器 当该域值为TRUE时 该检测器允许被用户激活 并产生输出 当该域值为FALSE时 用户无法激活该检测器 该域值的默认值为TRUE 事件说明 1 isOver为出事件 当用户的鼠标位于被感应的三维对象上方时 将引发isOver事件 且该事件为TRUE 反之 当用户的鼠标不在被感应的三维对象上方时 该事件值为FALSE 2 hitPoint changed为出事件 当用户在被感应的几何图形 由isOver指定 上单击鼠标时 发送该值 其值表示对象上点的坐标 3 hitNormal changed为出事件 当用户在被感应的几何图形 由isOver指定 上单击鼠标时 发送该值 其值表示对象上点的表面法向量 4 hitTexCoord changed为出事件 当用户在被感应的几何图形 由isOver指定 上单击鼠标时 发送该值 其值表示对象上点的纹理坐标 纹理坐标功能是VRML中很重要的一个功能 我们使用这一功能可以像HTML网页一样实现在一幅贴图上面划分多个区域 然后将每个区域设置各自的交互 5 isActive为出事件 当用户单击对象时 检测器被激活 该域值由FALSE变为TRUE 反之当检测器失效时 该域值将由TRUE变为FALSE 6 touchTime为出事件 当isOver为TRUE 而isActive为FALSE时发送该事件 所发送的值是系统当前的时间 实例6 11 在蓝色立体空间背景下 首先将光标移到飞碟立体空间造型上 当出现触摸图标时 一直按住鼠标左键不放开 这时在屏幕上会看见一个在触摸节点触发下飞行的飞碟 第一个路由是把 Touch isActive 触摸传感器节点鼠标按下时间的 TRUE 传送给 Time enabled 时间传感器节点的控制开关 enabled 使enabled由 FALSE 变成 TRUE 第二个路由是把 Touch touchTime 触摸传感器节点的单击事件的发生时间传送给 Time startTime 时间传感器的开始时间第三个路由是把 Time fraction changed 时间传感器的执行一段时间值传送给 flyinter set fraction 移动位置节点的一个时间片 第四个路由是把 flyinter value changed 移动位置节点的一组值传送给目标节点 flyinter set translation 使飞碟沿着设定的路径飞行 6 3 2PlaneSensor平面检测器节点 PlaneSensor平面检测器节点是使虚拟对象在X Y平面移动型传感器节点 PlaneSensor平面检测器节点能感应到观察者的拖动行为 进而改变虚拟现实对象的位置但是不能改变方位 而且只限定于X Y平面 当观察者拖动虚拟造型时 光标会在虚拟造型上变为一个收装的光标 该节点创建了一个可将浏览者的动作转换成适于操作造型的输出的检测器 该节点可以为任何成组节点的子节点 用以感知用户对该组节点的动作 使造型按用户的动作而平移 PlaneSensor平面检测器节点语法结构 PlaneSensor平面检测器节点语法 PlaneSensor enableTRUE exposedFieldSFBoolautoOffsetTRUE exposedFieldSFBooloffset0 00 00 0 exposedFieldSFVec3fmaxPosition 1 0 1 0 exposedFieldSFVec2fminPosition1 01 0 exposedFieldSFVec2fisActive eventOutSFBooltranslation changed eventOutSFVec3ftracPoint changed eventOutSFVec3f 域名和域值详解 1 enabled域的域值是布尔量 定义了一个开关 即是否激活平面移动传感检测器 当该域值为TRUE时 该检测器允许被用户激活 并产生输出 当该域值为FALSE时 用户无法激活该检测器 其默认值为TRUE 2 autoOffset域的域值是一个布尔量 如果为TRI正时 L亿程序会根据用户实际拖拉鼠标的情况 计算出每一次平移的偏移量 如果为F虬SE时 表示每当用户进行一次新的拖曳后 就会自动重新回到默认值 其默认值为TR 正 3 maxPosition域的域值用来设置检测器的最大位置值 其功能是限制移动对象的范围只能在X Y平面的某一点的下方和此点的左半部 其默认值为 1 1 4 minPosition域的域值用来设置检测器的最小位置值 其功能是限制移动对象的范围只能在X Y平面的某一点的上方和此点的右半部 其默认值为 00 5 offset域的域值用于设置偏移量 即每一次输出位置时的偏移量 当autoOffset域的域值为TRUE时 人为设置的偏移量将被忽略 其功能是每当用户进行一次新的拖曳时 能够从默认位置被移动到的最远距离 其默认值为 000 事件说明 1 isActive为出事件 eventOut 若该事件为TRUE时 表示鼠标是被按下的状态 若为FALSE时 则反之 该事件只会送出鼠标键是否被按下 但不是处于拖曳状态 2 trackPoint changed为出事件 表示进行拖曳后 用户的鼠标在X Y平面上的确切位置 当检测器被激活且用户单击鼠标时 该出事件发送该值 其值代表的是虚拟平面上的当前单击点 3 translation changed为出事件 表示在进行拖曳的任意时刻 用户的鼠标在X Y平面上的暂时位置 当检测器被激活且用户单击鼠标时 该出事件发送该值 其值代表虚拟平面上的平移坐标值 实例6 12 使用平面检测器节点 能使帆船在VRML立体空间行驶 当用户单击帆船造型后 帆船会按指定路径左移到指定位置 vrml6 12 wrl 6 3 2CylinderSensor圆柱检测器节点 CylinderSensor圆柱检测器节点是虚拟造型按圆柱体的中心轴旋转型传感器 CylinderSensor圆柱检测器节点用来创建一个将用户动作转换成造型围绕Y轴旋转的检测器 该节点可以作为任何组节点的子节点 此节点能够感应到用户的拖动动作 让被拖动的虚拟对象沿着Y轴旋转 虚拟对象就绕着圆柱体的中心轴被拖动旋转 CylinderSensor圆柱检测器节点语法结构 CylinderSensor圆柱检测器节点语法 CylinderSensor enableTRUE exposedFieldSFBooldiskAngle0 262 exposedFieldSFFloatautoOffsetTRUE exposedFieldSFBooloffset0 exposedFieldSFVec3fmaxAngle 1 0 exposedFieldSFFloatminAngle0 0 exposedFieldSFFloatisActive eventOutSFBoolrotation changed eventOutSFVec3ftracPoint changed eventOutSFVec3f 域名和域值详解 1 enabled域值是布尔量 若为TRUE时 表示检测器允许被用户激活 若为FALSE时 检测器未被用户激活 其默认值为TRUE 2 autoOffset域的值也是布尔量 若该域值为TRUE时 VRML程序会根据用户实际拖拉鼠标的情况 计算出每一次旋转的偏移量 若为FALSE时 表示每当用户重新拖拉一次鼠标后 就会自动回到默认值 其默认值为TRUE 3 offset域的值指定了物体旋转的偏移量 即虚拟对象能够从默认位置被旋转多少弧度 其默认值为0 当autoOffset字段的值为TRUE时 人为设置的偏移量将被忽略 4 maxAngle域的值定义了检测器输出的最大旋转角度 5 minAngle域的值定义了检测器输出的最小旋转角度 6 diskAngle域的值定义了检测器在圆盘行为和圆柱行为之间切换角度 默认值为0 262弧度 事件说明 1 isActive为出事件 当检测器被激活时 若该值为TRUE 表示当前用户正在进行拖拉操作 若为FALSE则反之 2 trackPoint changed为出事件 当用户激活检测器并进行拖拉操作时 将引发该事件值 其值代表圆柱体表面点的坐标 3 rotation changed为出事件 当用户激活检测器并进行拖拉操作时 将引发该事件值 该值是虚拟的圆柱体的旋转值 实例6 13 在蓝色立体空间背景下 使用圆柱检测器节点 打开一扇门 当用户单击门造型时 此门旋转90度打开 vrml6 13 wrl vrml6 14 wrl 6 3 4SphereSensor球面检测器节点 SphereSensor球面检测器节点是使虚拟对象按任意轴方向旋转型传感器 SphereSens球面检测器节点创建了一个将用户动作转换成造型绕某一点旋转的检测器 该节点可作为其他组节点的子节点 它能感受到用户使用鼠标的拖动行为 使造型在没有固定旋转轴的情况下 被任意拖动地旋转 也可以改变方位 但不能移动位置 空间造型可在一个以球体为中心的任意旋转轴上旋转 SphereSensor球面检测器节点语法结构 SphereSensor球面监测器节点语法 SphereSensor enableTRUE exposedFieldSFBoolautoOffsetTRUE exposedFieldSFBooloffset0 01 00 00 0 exposedFieldSFVec3fisActive eventOutSFBoolrotation changed eventOutSFVec3ftracPoint changed eventOutSFVec3f 域名和域值详解 1 enabled域值是布尔量 若为TRUE时 表示检测器允许被用户激活 若为FALSE 检测器未被用户激活 其默认值为TRUE 2 autoOffset域的值是布尔量 若为TRUE 表示物体拖拉前后所移动的轨迹 且停在拖拉后的位置 若为FALSE 则表示每当用户进行一次新的拖拉后 就会自动重新回到默认值 其默认值为TRUE 该域值作用是指定该旋转值是否发生偏移 3 offse真域的域值指定了检测器每一次输出的旋转量 作用是每当用户执行一次新的拖拉时 虚拟对象能够从默认方位被旋转一定的角度 其默认值为 0100 当autoOffset域值设置为TRUE时 本字段的设置将被忽略 vrml6 15 wrl 飞船会按要求旋转 当用户单击飞船时 可使飞船在以球体为中心的任意轴上旋转 6 4VRML感知检测器节点 运用VRML感知检测器可以感知用户与造型的接近程度 感知检测器包括VisibilitySensor能见度传感器节点 ProximtitySensor亲近度传感器节点Collision碰撞传感器节点 6 4 1VisibilitySensor能见度传感器节点 VisibilitySensor能见度传感器节点也称为可见性感知检测器节点 VisibilitySensor能见度传感器节点用来从观察者的方向和位置感知一个长方体区域在当前的坐标系中何时才是可视的 该节点可作为任意组节点的子节点 VisibilitySensor能见度传感器节点语法结构 VisibilitySensor能见度传感器节点语法 VisibilitySensor enabledTRUE exposedFieldSFBoolcenter0 00 00 0 exposedFieldSFVec3fsize0 00 00 0 exposedFieldSFVec3fisActive eventOutSFBoolenterTime eventOutSFTimeexitTime eventOutSFTime 域名和域值详解 1 enabled域的域值是一个布尔量 若为TRUE 表示能见度传感器节点可以感受到能见度的改变 若为FALSE 则反之 2 center域的域值定义了一个箱型区域中的一个可感知区域的几何中心点的三维坐标 若在这个限制的箱型区域内 表示能见度识别最大 传感器可以启动一些动态行为 若在这个限制箱型区域外 则表示能见度识别较差 传感器将停止一些动态行为 该域值的默认值为坐标原点 000 3 size域的域值指定了一个能见度传感器节点箱型长方体区域的尺寸 XYZ 该域值的3个数值分别表示长方体区域的宽度 高度和深度 该域值的默认值是在原点的一个点区域 000 实例6 16 在立体空间背景下 利用能见度传感器节点使飞碟与帆船在可见性感知检测器节点控制下产生动态运动行为 vrml6 16 wrl 6 4 2ProximitySensor亲近度传感器节点 ProximitySensor亲近度传感器节点也称为接近感知器节点 用来感知用户何时进入 退出和移动于坐标系内的一个长方体区域 该节点能够感应观测者进入和移动VRA4L虚拟现实场景中的长方体感知区域 当观测者穿越这个长方体感知区域时 可以使亲近度传感器启动某个动态对象 当观测者离开这个长方体感知区域 将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国立式注胶机行业产业运行态势及投资规划深度研究报告
- 2025湖南长沙市望城区招聘事业单位工作人员31人考前自测高频考点模拟试题及答案详解(新)
- 2025年合肥巢湖学院招聘专职辅导员6人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025北京昌平区第二批乡村助理员招5人考前自测高频考点模拟试题附答案详解(完整版)
- 智能仓储物流信息管理系统2025年技术创新与智能订单处理结合可行性报告
- 2025江苏盐城市东台市卫生健康委员会招聘事业单位工作人员130人考前自测高频考点模拟试题及答案详解(必刷)
- 2025年福建省龙岩市上杭县客家木偶艺术传习中心招聘1人考前自测高频考点模拟试题及一套参考答案详解
- 外墙广告制作安装协议5篇
- 2025-2030工业机器人核心零部件国产化突破路径与供应商能力评估报告
- 2025-2030工业机器人核心零部件供应链安全评估与战略布局建议报告
- GB/T 45860.1-2025光纤激光束焊机的验收试验第1部分:光纤输送机的激光组件
- 卒中后抑郁症的中医治疗
- 2025年4月自考00155中级财务会计试题及答案含评分标准
- DB50∕T 1653-2024 林区森林防火及森林质量提升专项规划编制导则
- 道路工程培训课件
- DGTJ08-2004B-2020 建筑太阳能光伏发电应用技术标准
- 制冰厂可行性研究报告
- 国庆假期大学生安全教育
- 快递业务流程标准化管理
- 中班健康魔法消气屋课件
- 呼吸内科出科汇报
评论
0/150
提交评论