纳金网

标题: VRML基础(二) [打印本页]

作者: robert    时间: 2011-12-22 09:13
标题: VRML基础(二)
来源:纳金网

假设我们现在要构造一个三维仿真的电动搅拌器,它的三维模型先由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节点,控制节点的旋转角度。
作者: 艳阳天    时间: 2011-12-23 14:02
这个有意思哈
作者: 3D小子    时间: 2011-12-23 14:21
只是路过
作者: 晃晃    时间: 2012-2-1 23:29
不错啊 经典

作者: 晃晃    时间: 2012-2-11 23:26
有意思!学习了!

作者: BU Secret    时间: 2012-3-9 17:41
有意思
作者: 难骑    时间: 2012-3-9 17:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: 浩劫    时间: 2012-3-9 19:50

作者: 艾朵儿    时间: 2012-3-21 15:59

作者: 菜刀吻电线    时间: 2012-3-31 23:31
灌水。。。

作者: tc    时间: 2012-7-22 23:20
已阵亡的 蝶 随 风 舞 说过  偶尔按一下 CTRL A 会发现 世界还有另一面

作者: 菜刀吻电线    时间: 2012-7-23 23:22
真不错,全存下来了.

作者: 奇    时间: 2012-7-23 23:22
响应天帅号召,顶

作者: C.R.CAN    时间: 2012-8-19 23:40
不错不错,收藏了

作者: 菜刀吻电线    时间: 2012-9-30 23:20
无聊时可以刷屏幕 灌水 也可以试试 帖子的标题究竟可以写多长

作者: 晃晃    时间: 2012-10-11 23:28
我是老实人,我来也!

作者: C.R.CAN    时间: 2012-10-13 23:28
发了那么多,我都不知道该用哪个给你回帖了,呵呵

作者: tc    时间: 2012-10-20 23:36
心中有爱,爱咋咋地





欢迎光临 纳金网 (http://old.narkii.com/club/) Powered by Discuz! X2.5