读书笔记 -- VRML与Java编程技术 Transform 节点

来源:互联网 发布:三一重工 大数据 编辑:程序博客网 时间:2024/05/25 12:20
Transform节点创建一个相对于已有坐标系的新坐标系,该节点所包含的空
间都是在这个新坐标系的基础上创建的。
Transform的语法如下:
Transform { #exposedField MFNode children []
#exposedField SFVec3f translation 0.0 0.0 0.0
#exposedField SFRotation rotation 0.0 0.0 0.0
#exposedField SFVec3f scale 1.0 1.0 1.0
#exposedField SFRotation scaleOrientation 0.0 0.0 1.0 0.0
#exposedField SFVec3f bboxCenter 0.0 0.0 0.0
#exposedField SFVec3f bboxSize -1.0 -1.0 -1.0
#exposedField SFVec3f center 0.0 0.0 0.0
#eventIn MFNode addChildren
#eventOut MFNode removeChildren
} children域
















Shape,Group和
Transform等

点。
translation域指定了新坐标系原点在父坐标系中的XYZ的坐标。缺省为0.0 0.0
0.0,表示新坐标系的原点与父坐标系的重合。利用该域可以实现平移的效果。
rotation域指定了一个旋转轴和旋转角。新坐标系围绕该旋转轴旋转指定的角
度。该域前三个值为三维坐标XYZ的值,该值是相对与新坐标系的,最后一个
值指定了旋转角,以弧度为单位。利用该域可以实现旋转的效果。
scale域指定了新坐标系在XYZ方向上的缩放系数。缺省为1.0 1.0 1.0,表示
没有缩放。scaleOrientation域指定一个旋转轴和旋转角,与scale一样,但
是scaleOrientation的值在缩放前旋转新的坐标系,在缩放再将其旋转回来。
bboxCenter域指定了包围该组子节点的包围盒的中心。缺省为0.0 0.0 0.0。
bboxSize域指定了包围该组子节点的包围盒在XYZ方向的大小。缺省值为-1.0
-1.0 -1.0。
center域指定了一个新坐标系中的三维坐标。所有的缩放与旋转都是相围绕该
坐标进行的。
addChildren事件入口将指定的节点加到组的子节点列表中。如果该子节点已经
存在则忽略。
removeChildren事件出口指定节点从组的子节点列表中删除。如果该子节点不
存在则忽略。

在Transform节点中可以嵌套另一个Transform节点,这时,被嵌套的Transform节
点的坐标系是相对于它外层的哪个Transform节点。这样做的一个优点是:Transrom所
定义的新坐标系不需要建立在同一个父坐标系(即最开始的坐标系)中。坐标
系可以嵌套另一个坐标系,或多个坐标系。
原创粉丝点击