X3D提供了立方体(Box)、圆柱(Cylinder)、圆锥(Cone)、球体(Sphere)等基本3D造型节点。在本讲中,我们先来简单地介绍这些节点的使用,然后再来介绍节点的编组和节点的重复使用方法。
一、 立方体Box
构造的代码如下:
说明:Box节点的主要属性是size,用来确定长度(x方向)、高度(y方向)和宽度(z)方向的大小。这里是定义一个长为2,宽和高均为1的立方体。
结果如下图所示。
二、 圆柱体Cylinder
代码如下:
说明:Cylinder节点的主要属性有height(高度)、radius(半径)以及是否包含顶面(top)、侧面(side)和底面(bottom)等。这里定义的是一个高为2,半径为1的圆柱体,该圆柱体含有各个面。
结果如下图所示。
三、 圆锥体Cone
代码如下:
说明:Cone节点的主要属性有height(高度)、bottomRadius(底面半径)以及是否包含侧面(side)和底面(bottom)等。这里定义的是一个高为3,半径为1的圆锥体,该圆锥体含有各个面。
结果如下图所示。
四、 球体Sphere
构造的代码如下:
说明:Sphere节点的主要属性是radius,用来确定球体的半径。
结果如下图所示。
五、 节点编组
节点编组是使用X3D的Group节点进行的,通过多个节点构成一组以便构造出更复杂的几何造型。如下面的代码
说明:该例使用Group 节点将两个Shape 节点组织在一体,构造一个组合造型。结果如下图所示。
六、 节点的复用
在X3D场景中往往有多个相同属性的节点出现,为了不重复添加节点属性,X3D中的节点属性窗口中提供了DEF 和 USE两个属性可以实现节点属性的复用。
DEF用来为节点定义一个节点名称以便后面的使用。该节点名称是大小写敏感(区分大小写),其取名规则基本上与C语言相似。
USE是用来引用前面相同节点的属性。如下面的代码:
说明:在第一个出现的Appearance节点中,我们将其定义一个名称Color3D,而在后面出现的Appearance节点,我们使用了USE来调用第一个节点的属性。这样,两个立体的外观就一样了。
从上面可以看出,在X3D中构造基本3D立体是非常简单方便的,但是由于每一个立体的属性被最大化优化过,因此要想改立体的位置和旋转角度还需要另外一些方法。在下一讲中,我们重点介绍立体造型的几何变换。