- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Script{ url [] #MFString directOutput FALSE #SFBool mustEvaluate FALSE #SFBool #any number of: eventIn eventTypeName eventName eventOut eventTypeName eventName field fieldTypeName fieldName InitialValue } url:定义一个url列表。其域值指定的脚本程序可以由任何VRML浏览器支持的语言写成,如Java语言、JavaScript、VRMLScript等。而且JavaScript的函数和指令可以直接包含在url域中。 mustEvaluate:指定程序脚本是如何进行求值。默认为FALSE。 TRUE:每当节点的eventIn事件接收到一个新值时,浏览器就立即对该程序脚本进行计算。 FALSE:浏览器在此脚本不影响事件的任何可视部分的情况下,可以推迟对脚本的计算,直到合适的时间到来。 directOutput:说明程序脚本的输出是否受到限制。 TRUE:脚本可以对它所能访问的任何节点的公共域进行写操作或对任何节点发送入事件,也可以在场景中动态增加或删除路由; FALSE:脚本不能直接进行写操作或发送入事件,但可以访问。 Script节点可以定义多个域和事件。 域和事件可以任意取名,但必须遵循VRML的命名约定,域和事件的命名必须以小写字母打头,而名字内每个子序列单词的首字母必须大写。且名字中允许使用下划线和数字。一般情况下: eventIn入事件通常以set_开始命名,除非它们在编组内具有添加或删除子节点的权限; eventOut出事件通常以_changed结束命名,除非它们是一个布尔类型或时间类型的数据; 布尔类型的出事件通常以is打头,时间类型的出事件通常以Time结尾。 例7-1,7-2,7-3 第六章、交互功能的实现 对于VRML场景来说,有了动画功能,能够让浏览者感受到一种生动、逼真的效果,但是对于浏览者而言,还是有不足,因为浏览者还是被动的接受信息。如果浏览者能够控制场景,那么动画、光照以及声音等效果才能更逼真。 实现用户和场景的交互有很多的方法,最常见的是通过检测、感知等传感器节点的使用,使浏览者和虚拟对象能够实现交互的功能。 传感器可以分为两大类,一类是接触型的传感器,另一类是感知型的传感器。 传感器主要用来检测浏览者在虚拟场景中的动作。所谓动作,广义的看可以分为两类: 一类是用户的输入设备对于对象的操作。用户在浏览场景的时候,主要输入设备就是鼠标,这时候传感器实际上就是检测用户对鼠标的各种操作动作,如鼠标单击、指向和拖动等动作,从而对场景作出相应的反应。检测这类动作的传感器是接触型传感器。 另一类是用户和场景中某对象接近的程度,对象作出响应,从而在用户和虚拟对象之间形成交互。检测用户和对象接近程度的传感器是感知传感器。 描述接触型传感器的节点有: 接触传感器(TouchSensor) 平面移动型(PlaneSensor) 球面传感器(SphereSensor) 柱面传感器(CylinderSensor) 描述感知型传感器的节点有: 可见传感器(VisiblitySensor) 接近传感器(ProximitySensor) 碰撞传感器(Collision ) 一、接触型传感器 接触传感器节点TouchSensor主要用于检测用户基于指点设备(鼠标、操纵杆等)的动作,并将其转换后以各种形式的事件输出。 TouchSensor节点可以作为任何编组节点的子节点使用,并感知用户对该编组节点中所以造型的指点动作。 注意,TouchSensor本身并不创建任何几何造型或其他可视对象,因此如果不将该传感器和某个与它同属一个层次的造型节点捆绑在一起,该传感器节点将无法发挥其应有的作用。 1、接触传感器 TouchSensor { enabled TRUE #SFBool hitNormal_changed eventOut #SFVec3f hitPoint_changed eventOut #SFVec3f hitTexCoord_changed eventOut #SFVec2f isActive eventOut #SFBool isOver eventOut #SFBool touchTime eventOut #SFTime } enabled:表明是否激活该传感器,为TRUE,表示激活,能够对指点输入设备的动作作出反应并产生各种事件输出。 isOver:指点设备当前是否正位于对象上,当在对象上,引发该事件,事件值为TRUE;当离开对象时,也引发该
您可能关注的文档
最近下载
- 法律职业资格(主观题)历年真题摘选附带答案2024.docx VIP
- 用于皮秒脉冲产生的级联阶跃二极管电路.pdf VIP
- 课外古诗词诵读《梁甫行》课件(共24张ppt)2025-2026学年统编版语文八年级上册.pptx VIP
- 2023高考诗歌鉴赏专项练习:表达技巧4-写景手法(典例引领+方法技巧+巩固训练+答案解析).docx VIP
- 纪念九一八主题班会课件学习资料.ppt VIP
- 佛山市教育局1.pdf VIP
- 基于场效应管与阶跃恢复二极管的皮秒级脉冲源设计.PDF
- 2025法律职业资格(主观题)历年真题摘选附带答案.docx VIP
- 贵阳机场通行证考试试题及答案.doc VIP
- 学校类物业管理投标文件技术部分完整规范模板.doc VIP
文档评论(0)