CylinderSensor节点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CylinderSensor节点.doc

CylinderSensor节点 CylinderSensor{ minAngle 0 # expected field SFFloat maxAngle -1 # expected field SFFloat enable TRUE # expected field SFFBool diskAngle 0.262 # expected field SFFloat offset 0 # expected field SFFloat autoOffset TRUE # expected field SFFBool } ? 域 minAngle 允许旋转的最小角度(旋转角小于此范围时,仍被钳制在这一范围内)。? maxAngle 允许旋转的最大角度(旋转角大于此范围时,仍被钳制在这一范围内)。? enable 指明传感器是否监控定点设备事件。若想关闭监控,可向它发送一个值为FALSE的set_value事件。 diskAngle 决定被监控对象的动作是象一个圆柱或象磁碟绕y轴旋转。若用户在圆柱轴附近点击,被监控对象的动作象磁碟转动,否则象圆柱一样转动。 offset 指出从初始方向转动被监控对象的角度值。 autoOffset 指出是否在每次拖动完成后将当前的方向角存入offset域,以达到跟踪当前方位的目的。如果autoOffset是FALSE,每当用户开始一个新的托动时,被拖动几何体恢复至最初的方位。 ? 事件 isActive eventIn???? SFBool 指出用户是否正在拖曳被监控的几何体。? trackPoint_changed evevtOut??? SFVec3f 输出用户随时所指向的在圆柱或磁碟轨迹面上的轨迹的点。? rotation_changed eventOut??? SFRotation 输出旋转角度。 ? 说明 ??? 圆柱监控器节点把二维的拖曳输入(如拖曳鼠标)转变为三维空间中沿y轴的旋转。根据用户点击的位置(相当于传感器的y轴),CylinderSensor节点可以有两种相关行为,即象一个圆柱或象磁碟绕y轴旋转。 ??? 当用户移动鼠标至可感知几何体并按下按键时,浏览器产生一个绕监控器局部坐标系统y轴的虚拟圆柱,这个圆柱的底和测面大小的比例由diskAngle确定。可以把diskAngle看做是一个在虚拟圆柱内部的圆锥的顶角,圆锥的底面圆盘即为圆柱的顶面。 ? 如果用户点中圆柱的顶或低面,拖曳动作就会被解释为和旋转一个平面圆盘一样。如果用户点中圆柱的侧面部分,拖曳动作就会被解释为旋转这个圆柱。如果仅仅对特殊的旋转范围有兴趣,可以通过设置minAngle和maxAngle的值把旋转限制在那一范围内。如果minAngle大于maxAngle,就没有任何限制了。 ? 如果希望几何体在已旋转的基础上继续旋转,则设置autoOffset为TURE,否则设置为FALSE. ? 当圆柱监控器处于激活状态时(即当用户拖曳感知物体时),其它定点设备传感器不会作任何事件。 第三讲 VRML交互程序编程 利用Interpolator内插器节点和TimeSensor时间传感器节点,再加上ROUTE语句,人们可以编写出VRML动画程序。利用其它传感器Sensor节点,人们可以编写出VRML交互程序。下面我们对这些节点一一介绍: 一. CylinderSensor节点 作用: 可使鼠标的移动转变成形体的绕自身Y轴的旋转运动。 通过坐标变换,可使形体绕任意轴旋转。 可以用鼠标拖动一个形体,来使自身旋转。 也可以用鼠标拖动一个形体,来使另一个形体旋转 主要字段: maxAngle 可用来控制最大旋转角度 minAngle 可用来控制最小旋转角度 rotation_changed 向外发出的旋转信号 编程步骤1: 利用Transform构造一个坐标系,里面放置两个内容: 一个形体和一个CylinderSensor,它们放置在一个方扩弧里面。 用DEF对Transform和CylinderSensor命名, 假设Transform的名字为NAMETT,CylinderSensor的名字为NAMECC。 编程步骤2: 通过编写一个ROUTE语句,使鼠标的移动变成形体的转动。 编写的ROUTE语句为:ROUTE NAMECC.rotation TO NAMETT.rotation (也可以写成:ROUTE NAMECC.rotation_changed TO NAMETT.set_rotation) #VRML V2.0 utf8 DEF TRAN Transform { children [ Shape { appearance Appe

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档