zoukankan      html  css  js  c++  java
  • VRML/X3D中如何按照设定好的路径自动漫游或行走?且如果控制只走一遍?

    VRML/X3D中如何按照设定好的路径自动漫游或行走?且如果控制只走一遍?

    今天查了很多资料,总结出来这个算是比较简单的方案。

    主要用到TimeSensor,TouchSensor,PositionInterpolator,OrientationInterpolator。

    示例:

    DEF pi PositionInterpolator {

    key [ 0

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

    ]

    keyValue [

    9        1.5   2       ,

    9        1.5   4       ,

    20      1.5   15     ,

    22      1.5   15     ,

    23      1.5   16     ,

    42      1.5   16     ,

    43      1.5   17     ,

    43      1.5   31     ,

    42      1.5   32     ,

    42      1.5   38     ,

    41      1.5   39     ,

    ]

    }

    DEF   oi OrientationInterpolator {

    key [ 0 0.05 0.25 0.3 0.35 0.55 0.6 0.75 0.8 0.95 1]

    keyValue [

               0 1 0 3.14,

               0 1 0 4,

               0 1 0 -1.57,

               0 1 0 -1.57,

               0 1 0 -1.57,

               0 1 0 -2.8,

               0 1 0 3.14,

               0 1 0 3.14,

               0 1 0 3.14,

               0 1 0 3.14,

               0 1 0 3.14]

    }

    DEF ts TimeSensor {

    cycleInterval 33

    loop FALSE

    }

    DEF   tct TouchSensor       {}

    ROUTE tct.touchTime       TO ts.startTime

    ROUTE ts.fraction_changed TO pi.set_fraction

    #ROUTE pi.value_changed TO tr.set_translation

    ROUTE  pi.value_changed       TO CVP.set_position

    ROUTE ts.fraction_changed TO oi.set_fraction

               ROUTE oi.value_changed TO CVP.set_orientation

    当loop为FALSE时,需要自己启动TimeSensor,这时借助TouchSensor来传递ts的startTime来启动。

    这样就每当点击场景中物体时,就会激发一次动画(即路径行走一遍)。

    如果把loop设置为TRUE那就不需要TouchSensor来启动了,会自发启动并且一直循环下去。

    作者:Jason Cai
    出处:http://www.cnblogs.com/BrainDeveloper/
    本文版权归作者(Jason Cai)所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    January 25th, 2018 Week 04th Thursday
    January 24th, 2018 Week 04th Wednesday
    January 23rd, 2018 Week 04th Tuesday
    January 22nd, 2018 Week 04th Monday
    January 21st, 2018 Week 3rd Sunday
    January 20th, 2018 Week 3rd Saturday
    January 19th, 2018 Week 3rd Friday
    January 18th, 2018 Week 03rd Thursday
    January 17th, 2018 Week 03rd Wednesday
    January 16th, 2018 Week 03rd Tuesday
  • 原文地址:https://www.cnblogs.com/BrainDeveloper/p/2052501.html
Copyright © 2011-2022 走看看