尝试中.....

作业要求:

     制作旋转门,当鼠标在玻璃门上拖拽时玻璃门旋转。

制作过程如下:

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“动画交互“——旋转门练习相关推荐

  1. 虚拟现实技术vrml“坐标变换节点”——案例

    例1:构建一个圆柱体造型,利用Transform节点的坐标平移translation域的域值,创建一个 在Y方向上平移1.5单位的新坐标系,构建圆锥体造型,形成一个类似烟囱的组合造型. Shape{ ...

  2. VR教育虚拟现实技术应用的价值

    传统教学对于现在的学生来说有很多弊端,经常有家长和老师都反应,某个同学上课开小差,甚至直接逃课--这些都是厌学的症状.现代技术发展的今天,电子科技已经蔓延到千家万户,对于现在学生来说,传统的粉笔黑板教 ...

  3. 计算机动画 vr技术应用,浅谈VR技术在动画专业教学中的运用

    摘要:VR技术是网络计算机技术快速发展背景下衍生的新技术,其以计算机为载体,能够对复杂数据进行高效的交互和可视化操作,当前,VR技术逐渐向教育领域延伸,作为一种新的教学技术具有非常广阔的前景.本文以V ...

  4. vr技术在计算机教学中的应用,虚拟现实技术在计算机教学中的应用

    摘 要 虚拟现实技术作为新型的教学媒体已广泛应用于教育领域,并发挥了重要作用.本文从虚拟现实技术的特点和应用出发,阐述了虚拟现实技术在教学中的作用,重点论述了虚拟现实技术在计算机教学中的应用. 关键词 ...

  5. 第8章 虚拟现实技术的相关软件

    8.1        三维建模软件 8.1.1 3ds Max 3ds Max是基于PC系统的三维动画制作和渲染软件,具有三维建模.材质制作.灯光设定.摄像机使用.动画设置及渲染等功能. 优势: 有非 ...

  6. ue4相机_纳格数字创意课程介绍 |UE4虚拟现实技术室内方向

    VR建筑与室内表现是一个时代呼唤下的新兴技术领域,它对建筑和室内进行可视化设计, 依托数字图像技术, 通过效果图.动画.交互.体验等方式,对未来场景进行虚拟呈现, 实现从"无"到& ...

  7. 虚拟现实技术利用计算机,虚拟现实技术在计算机教学的应用

    摘要:近年来,利用虚拟现实技术在教育领域开发了一种新的教学模式.通过相关研究,设计与实现关于计算机课程教学的一些功能模块,可以帮助学生掌握和巩固教学中的难.重点,提高学生的自主性.积极性和创造性.笔者 ...

  8. 虚拟现实技术利用计算机,虚拟现实技术在计算机专业教学中的应用思考

    [摘要]虚拟现实技术在计算机教学中进行应用,其能够有效提高学生的学习兴趣,培养学生的探索能力和创新能力.本文对虚拟现实技术的概念和特点进行了阐述,并且分析了虚拟现实技术在计算机实践教学中的实践应用,从 ...

  9. 5课件制作_【计算机论文】虚拟现实技术下多媒体课件开发的流程

    摘 要: 目前虚拟现实技术在高校教学多媒体课件开发过程中应用较为广泛,在分析虚拟现实技术及其在课件开发中的应用优势的基础上,针对虚拟现实技术在多媒体课件开发中的具体应用展开了相关论述,以期实现更深层次 ...

最新文章

  1. Codeforces 768E:Game of Stones
  2. 华为设备ENSP静态路由的配置实战
  3. python汉诺塔问题输入层数输出整个移动流程_python实现汉诺塔方法汇总
  4. UnitTest in .NET(Part 5)
  5. python 的__str__和__repr__有什么区别?
  6. 扎心!8.5亿网民 超七成月收入5000元以下,网友:这数据很真实
  7. 95-140-118-源码-transform-算子connect
  8. java 7 json_java第七周----json
  9. 前端框架Bootstrap
  10. 音乐播放小程序demo
  11. 即兴演讲、怎么锻炼即兴演讲能力、一些即兴演讲的模板
  12. 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第二节-英国人做鸦片买卖
  13. Orange Business Services 携手 Riverbed 将 SD-WAN 引入混合网络
  14. WebGL着色器变量(attribute、uniform和varying)
  15. 2021年汽车驾驶员(技师)考试题及汽车驾驶员(技师)找解析
  16. 学会这几点,不懂代码也能做出炫酷可视化大屏!
  17. u8 u16 u32 u64 c++
  18. java 与 c gzip_zlib和gzip生成不同的数据
  19. Android Studio NKD开发之 FFmpeg库的引入--简单播放器(主要验证是否正确引入ffmpeg库)
  20. 适合编程初学者的开源博客系统(Go语言版)

热门文章

  1. 浅谈HandlerThread
  2. 【有奖话题】一场因疫苗引发的技术风波?
  3. centOS7 下作网络桥接
  4. Codeforces Round #262 (Div. 2) 460C. Present
  5. 广义平稳随机过程和狭义平稳随机过程
  6. ucenter avatar.php,UCenter版本Discuz!头像转换工具详解
  7. “XML declaration should precede all document content“解决方法
  8. win11策略服务未运行怎么解决?策略服务未运行的解决方法
  9. Windows API--SuspendThread和ResumeThread函数
  10. coreldraw x5 选择工具快捷键_coreldraw x5快捷键大全 coreldraw快捷键大全