- 最后登录
- 2013-6-5
- 注册时间
- 2011-12-3
- 阅读权限
- 90
- 积分
- 6206
- 纳金币
- 6206
- 精华
- 0
|
来源:纳金网
假设我们现在要构造一个三维仿真的电动搅拌器,它的三维模型先由UG来完成,再输出成一个VRML文件,然后对设备的各个部件进行细节渲染,最后还要按要求分别定义颜色和材质。
对这样一个系统的3D仿真包括的内容有设备各个部件的加速减速、搅拌器几何形状和工作指示灯等等,为了简便起见,下面仅就电动机的加速减速为例简述怎么样来实现它。
实现电机的转动要用到TimeSensor 节点,代码如下:
DEF time TimeSensor {cycleInterval A
loop ***e }
说明:
cycleInterval指定了一个时间长度A,数值从0.0到1.0,改变A的大小可以改变电机转动的快慢。Loop是一个开关变量,指定转动循环的状态,***e 值是无限循环,False值是只循环一次。
实现电机转动还需要用到的另一个节点是OrientationInterpolator,即转动的朝向插补器,代码如下:
DEF path OrientationInterpolator {key [ ]
keyValue [ ]}
说明:
key和keyValue指定了电机转子转动的关键值和关键位置。
发生事件和接收事件的节点则由ROUTE(纳金网注:路由指令)指令连接在一起:
ROUTE time.fraction_changed TO path.set_fraction
ROUTE path.value_changed TO zhuanzi.set_rotation
说明:
上面第一行代码在TimeSensor节点中的fraction_changed eventOut和OrientationInterpolator节点的set_fraction eventIn之间建立起连接。第二行则在OrientationInterpolato节点的Value_changed eventOut事件和TimeSensor节点的set_translation 之间建立了连接。
虚拟场景中的电机开动之后,时间传感器会被激发而不停地输出时间值,插补器OrientationInterpolator收到之后,会计算一个新的旋转数据输出给Transform节点,控制节点的旋转角度。 |
|