在X3D场景空间中,每一个造型都有其空间坐标,通过修改空间坐标系就可以使该造型在场景空间中移动、旋转和缩放等。 X3D提供Transform节点来进行造型的几何变换,该节点的主要属性如下表所示:
| 属性 | 含义 | 默认值 | 使用说明 |
| translation | 平移 | 0 0 0 | 将几何体平移到指定的空间点位置 |
| rotation | 旋转 | 0 0 1 0 | 前3个值是空间坐标点,该点和原点相连的线为旋转轴,第4个值为旋转角度(以弧度为单位) |
| center | 操作基点 | 0 0 0 | 指定一个空间点作为几何变换的基点 |
| scale | 比例 | 1 1 1 | 指定在X、Y、Z方向的比例系数以便进行缩放 |
| scaleOrientation | 预旋转比例 | 0 0 1 0 | 缩放前子节点局部坐标系统的预旋转(允许沿着子节点任意方向缩放),其数值含义同rotation属性 |
| bboxCenter | 边界盒的中心 | 0 0 0 | 指定几何体自身原点的位置 |
| bboxSize | 边界盒的大小 | -1 -1 -1 | 默认情况下是自动计算的,为了优化场景,也可以强制指定。 |
下面就来介绍上述属性的使用方法。
一、 平移
示例代码如下:

说明:上面例子中,我们构造了两个球。为了使另一个球在(3,0,0)位置上显示,我们使用了Transform节点,该节点是一个组节点,Shape等节点需要作为它的子节点才能进行几何造型的变换。
结果如下图所示。

二、 旋转
代码如下:

说明:立方体先平移到(3,0,0)点,然后按自身原点沿Z轴旋转45度(弧度值约为0.785),结果如下图所示。

若将立方体自身原点移至最右侧面的中点,则上述代码可修改成:

其结果如下:

请仔细比较这两次结果的不同。
三、 缩放
代码如下:

说明:上述代码中将第二个球沿X、Y、Z方向分别设置比例系数1、3和0.5,其结果如下图所示。

四、 综合实例
通过几何变换可以构造更多更复杂的几何造型,下面的示例代码就是用来构造一个三维坐标轴。

说明:上述代码中,先用圆柱和圆锥构造Y轴,并将其合并成组Axis。然后对组Axis进行旋转变换,结果如下图所示。

上述显示的场景是用鼠标改变其视角的结果。当然,视角的改变还可直接通过节点进行设置,在下一讲中,我们将讨论视点和导航的设置。