虚拟现实技术vrml“动画交互“——旋转门练习
尝试中.....
作业要求:
制作旋转门,当鼠标在玻璃门上拖拽时玻璃门旋转。
制作过程如下:
1、先建立1个横向的立方体,充当玻璃门1
代码:
Transform {
translation 0 0.6 0 #立方体向上移动到0.6位置
children [
Shape {
appearance Appearance { #外观域
material Material {
diffuseColor 0 0.2 0.5 #材质颜色设置
transparency 0.6 #透明度设置
}}
geometry Box { #立方体几个造型节点
size 2 1 0.1 #立方体的大小,三维坐标代表长宽高
}
} ]}
2、建立1个纵向的立方体,充当玻璃门2
(复制上一个横向的立方体,并旋转90度即可)
代码:
Transform {
translation 0 0.6 0
rotation 0 1 0 1.571 #立方体绕着y轴旋转90度
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0 0.2 0.5
transparency 0.6
}}
geometry Box {
size 2 1 0.1
}
} ]}
3、制作中间的柱子,应该使用圆柱体几何造型节点
代码:
Transform {
translation 0 0.6 0 #立方体向上移动到0.6位置
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0 1 0
}}
geometry Cylinder { #圆柱体几何造型节点
height 1.2 #圆柱体高为1.2
radius 0.05 #半径为0.05
}
} ]}
4、制作底面,应该用圆柱体几何造型节点
代码:
Transform {
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.2 0.1
}}
geometry Cylinder { #圆柱体几何造型节点
height 0.06 #圆柱体高为1.2
radius 1.4 #高为1.4
}
} ]}
5、制作顶面,跟上面制作底面是一样的
(在底面的基础上修改位置即可)
代码:
Transform {
translation 0 1.2 0 #圆柱体向上移动到1.2的位置上
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.2 0.1
}}
geometry Cylinder {
height 0.06
radius 1.4
}
} ]}
6、在左右两边添加柱子
(复制“3、中间的柱子”的代码,修改位置和半径即可)
右边柱子代码:
Transform {
translation 1.2 0.6 0 #圆柱体向右移动1.2,向上移动到1.2的位置上
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.2 0.1
}}
geometry Cylinder {
height 1.2
radius 0.09
}
} ]}
左边柱子代码:
Transform {
translation -1.2 0.6 0 #圆柱体向左移动1.2,向上移动到1.2的位置上
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 0.8 0.2 0.1
}}
geometry Cylinder {
height 1.2
radius 0.09
}
} ]}
1-6是制作基本造型,接下来是动画制作部分
7、先将上面的1和2放在同一个坐标节点下
如:Transform {
children [立方体1,立方体2 ]}
8、在7的基础上修改,在Transform前面添加DEF lif
注:DEF的作用是在场景中需要多次使用的同一节点,可以通过节点重定义后,在后面使用引用的方法多次调用。
如:DEF lif Transform { #DEF给玻璃门的Transform节点命名为lif
children [立方体1,立方体2 ]}
9、利用圆柱体传感器,使当用鼠标拖拽时,造型轨迹会类似于圆柱体旋转,简单说就是鼠标拖拽时,造型会沿着y轴旋转。
代码:
DEF blm CylinderSensor { #DEF给传感器CylinderSensor节点命名为blm
offset 0.785 # 设定造型的初始旋转角度,当首次单击鼠标时,造型绕圆柱体中心轴相对 于初始位置旋转角度。
autoOffset TRUE #是否自动记忆上次旋转的终点角度
}
10、最后一步,用ROUTE TO,使事件出口和事件入口通过路径相连
ROUTE 语句 从一个节点的事件出口到另一个节点的事件入口,传送事件的路径叫路由。
代码:
ROUTE blm.rotation_changed TO lif.rotation
#当CylinderSensor圆柱体传感器节点发生改变时,就会影响到Transform坐标变换节点的改变
#rotation_changed(出事件):当鼠标拖拽造型时,传感器不断输出立方体几何节点造型旋转的角度值。
总体代码:
#VRML V2.0 utf8DEF lif Transform {children [Transform {translation 0 0.6 0children [Shape {appearance Appearance {material Material {diffuseColor 0 0.2 0.5transparency 0.6}}geometry Box {size 2 1 0.1}} ]}Transform {translation 0 0.6 0rotation 0 1 0 1.571children [Shape {appearance Appearance {material Material {diffuseColor 0 0.2 0.5transparency 0.6}}geometry Box {size 2 1 0.1}} ]} ]}Transform {translation 0 0.6 0children [Shape {appearance Appearance {material Material {diffuseColor 0 1 0}}geometry Cylinder {height 1.2radius 0.05 }} ]} Transform {translation 0 0 0children [Shape {appearance Appearance {material Material {diffuseColor 0.8 0.2 0.1 }}geometry Cylinder {height 0.06radius 1.4 }} ]}Transform {translation 0 1.2 0children [Shape {appearance Appearance {material Material {diffuseColor 0.8 0.2 0.1 }}geometry Cylinder {height 0.06radius 1.4 }} ]}Transform {translation -1.2 0.6 0children [Shape {appearance Appearance {material Material {diffuseColor 0.8 0.2 0.1}}geometry Cylinder {height 1.2radius 0.09 }} ]}Transform {translation 1.2 0.6 0children [Shape {appearance Appearance {material Material {diffuseColor 0.8 0.2 0.1}}geometry Cylinder {height 1.2radius 0.09 }} ]}DEF blm CylinderSensor {offset 0.785autoOffset TRUE }ROUTE blm.rotation_changed TO lif.rotation
最后运行结果:
虚拟现实技术vrml“动画交互“——旋转门练习相关推荐
- 虚拟现实技术vrml“坐标变换节点”——案例
例1:构建一个圆柱体造型,利用Transform节点的坐标平移translation域的域值,创建一个 在Y方向上平移1.5单位的新坐标系,构建圆锥体造型,形成一个类似烟囱的组合造型. Shape{ ...
- VR教育虚拟现实技术应用的价值
传统教学对于现在的学生来说有很多弊端,经常有家长和老师都反应,某个同学上课开小差,甚至直接逃课--这些都是厌学的症状.现代技术发展的今天,电子科技已经蔓延到千家万户,对于现在学生来说,传统的粉笔黑板教 ...
- 计算机动画 vr技术应用,浅谈VR技术在动画专业教学中的运用
摘要:VR技术是网络计算机技术快速发展背景下衍生的新技术,其以计算机为载体,能够对复杂数据进行高效的交互和可视化操作,当前,VR技术逐渐向教育领域延伸,作为一种新的教学技术具有非常广阔的前景.本文以V ...
- vr技术在计算机教学中的应用,虚拟现实技术在计算机教学中的应用
摘 要 虚拟现实技术作为新型的教学媒体已广泛应用于教育领域,并发挥了重要作用.本文从虚拟现实技术的特点和应用出发,阐述了虚拟现实技术在教学中的作用,重点论述了虚拟现实技术在计算机教学中的应用. 关键词 ...
- 第8章 虚拟现实技术的相关软件
8.1 三维建模软件 8.1.1 3ds Max 3ds Max是基于PC系统的三维动画制作和渲染软件,具有三维建模.材质制作.灯光设定.摄像机使用.动画设置及渲染等功能. 优势: 有非 ...
- ue4相机_纳格数字创意课程介绍 |UE4虚拟现实技术室内方向
VR建筑与室内表现是一个时代呼唤下的新兴技术领域,它对建筑和室内进行可视化设计, 依托数字图像技术, 通过效果图.动画.交互.体验等方式,对未来场景进行虚拟呈现, 实现从"无"到& ...
- 虚拟现实技术利用计算机,虚拟现实技术在计算机教学的应用
摘要:近年来,利用虚拟现实技术在教育领域开发了一种新的教学模式.通过相关研究,设计与实现关于计算机课程教学的一些功能模块,可以帮助学生掌握和巩固教学中的难.重点,提高学生的自主性.积极性和创造性.笔者 ...
- 虚拟现实技术利用计算机,虚拟现实技术在计算机专业教学中的应用思考
[摘要]虚拟现实技术在计算机教学中进行应用,其能够有效提高学生的学习兴趣,培养学生的探索能力和创新能力.本文对虚拟现实技术的概念和特点进行了阐述,并且分析了虚拟现实技术在计算机实践教学中的实践应用,从 ...
- 5课件制作_【计算机论文】虚拟现实技术下多媒体课件开发的流程
摘 要: 目前虚拟现实技术在高校教学多媒体课件开发过程中应用较为广泛,在分析虚拟现实技术及其在课件开发中的应用优势的基础上,针对虚拟现实技术在多媒体课件开发中的具体应用展开了相关论述,以期实现更深层次 ...
最新文章
- Codeforces 768E:Game of Stones
- 华为设备ENSP静态路由的配置实战
- python汉诺塔问题输入层数输出整个移动流程_python实现汉诺塔方法汇总
- UnitTest in .NET(Part 5)
- python 的__str__和__repr__有什么区别?
- 扎心!8.5亿网民 超七成月收入5000元以下,网友:这数据很真实
- 95-140-118-源码-transform-算子connect
- java 7 json_java第七周----json
- 前端框架Bootstrap
- 音乐播放小程序demo
- 即兴演讲、怎么锻炼即兴演讲能力、一些即兴演讲的模板
- 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
- Orange Business Services 携手 Riverbed 将 SD-WAN 引入混合网络
- WebGL着色器变量(attribute、uniform和varying)
- 2021年汽车驾驶员(技师)考试题及汽车驾驶员(技师)找解析
- 学会这几点,不懂代码也能做出炫酷可视化大屏!
- u8 u16 u32 u64 c++
- java 与 c gzip_zlib和gzip生成不同的数据
- Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
- 适合编程初学者的开源博客系统(Go语言版)
热门文章
- 浅谈HandlerThread
- 【有奖话题】一场因疫苗引发的技术风波?
- centOS7 下作网络桥接
- Codeforces Round #262 (Div. 2) 460C. Present
- 广义平稳随机过程和狭义平稳随机过程
- ucenter avatar.php,UCenter版本Discuz!头像转换工具详解
- “XML declaration should precede all document content“解决方法
- win11策略服务未运行怎么解决?策略服务未运行的解决方法
- Windows API--SuspendThread和ResumeThread函数
- coreldraw x5 选择工具快捷键_coreldraw x5快捷键大全 coreldraw快捷键大全