• 沒有找到結果。

TriangleSet2D(三角形)节点是使用三角形端点来构造空间 2D 几何三角形造型。该节点 由一系列的二维坐标顶点组成一个二维几何平面三角形图形。Shape(模型)节点可以包含 Appearance 子节点和 Geometry 子节点,TriangleSet2D(三角形)节点作为 Shape(模型)节 点下 Geometry(几何造型)节点域中的一个子节点。而 Appearance(外观)节点和 Material

(外观材料)节点用于描述 TriangleSet2D(三角形)节点的纹理材质、颜色、发光效果、明 暗、光的反射及透明度等。TriangleSet2D(三角形)节点是一个 2D 平面几何造型节点,

TriangleSet2D(三角形)节点指定一系列的平面三角形。

1.TriangleSet2D(三角形)节点语法定义

TriangleSet2D(三角形)节点是一个平面几何造型节点,通过顶点设定产生一系列的平面 三角形。TriangleSet2D(三角形)节点作为 Shape(模型)节点下 Geometry(几何)造型节点 域中的一个子节点。TriangleSet2D(三角形)节点语法定义了平面三角形的属性或域,利用 TriangleSet2D(三角形)节点的域名、域值、域的数据类型,以及事件的存储/访问权限的定 义来创建一个效果更加理想的一系列平面三角形。利用 TriangleSet2D(三角形)节点中的 lineSegments(多个端点)等参数创建 X3D 一系列二维平面三角形造型。

TriangleSet2D(三角形)节点语法定义如下:

TriangleSet2D(三角形)节点

{ 域名 域值 域数据类型 存储/访问类型

DEF ID

USE IDREF

vertices [] MFVec2f initializeOnly solid true SFBool initializeOnly containerField geometry

class }

2.TriangleSet2D(三角形)节点数据描述

TriangleSet2D(三角形)节点包含域名、域值、域数据类型及存储/访问类型等,节点中 数据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFBool 域,一 个单值布尔量,取值为 true 或 false;②MFVec2f 域:是一个包含任意数量的二维矢量的多值 域。事件的存储/访问类型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、

outputOnly(输出类型)、initializeOnly(初始化类型)及 inputOutput(输入/输出类型)等,用 来描述该节点必须提供该属性值。

3.TriangleSet2D(三角形)节点详解

TriangleSet2D(三角形)节点包含 DEF、USE、vertices、solid、containerField 以及 class 等域。

vertices 域:指定了一系列 TriangleSet2D 顶点的二维坐标,实现多个平面三角形造型。该 域值的初始值为空,取值范围为(-∞,∞)。在设计和开发的过程中,几何尺寸一旦初始化后 就不可以再更改,可以使用 Transform 缩放尺寸。

solid 域:定义了一个平面三角形造型表面和背面绘制的布尔量,当该域值为 true 时,表 示只构建平面三角形对象的表面,不构建背面;当该域值为 false 时,表示平面三角形对象的 正面和背面均构建。该域值的取值为 true 或 false,其默认值为 true。

containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 geometry,包含几何造型节点,如 geometry Box、children Group、proxy Shape。

containerField 属性只有在 X3D 场景用 XML 编码时才使用。

class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML 编码时才支持 class 属性。

DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。

USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。

该属性是可选项。

4.TriangleSet2D(三角形)节点源程序实例

TriangleSet2D(三角形)节点是在 Shape(模型)节点中的 Geometry(几何造型)子节点 下创建二维三角形造型,使用 Appearance(外观)子节点和 Material(外观材料)子节点描述 空间物体造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的

亮度及透明度等,使二维空间场景和造型更具真实感。

【例 3-6】在 X3D 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance(外 观)子节点和 Material(外观材料)子节点及 TriangleSet2D(三角形)节点,创建多个绿颜色 的 2D 几何三角形造型。TriangleSet2D(三角形)节点几何场景设计 X3D/VRML 文件 pvrml3-6.wrl 展示如下:

#VRML V2.0 utf8

# META "filename" "pvrml3-6.wrl"

# META "author" "zjz-zjr-zjd"

EXTERNPROTO TriangleSet2D [ field MFVec2f vertices

Background {

groundColor [ 0.98 0.98 0.98 ] skyColor [ 0.98 0.98 0.98 ] }

Viewpoint {

description "Geometry2D Component Examples"

position 0 0 12

在 X3D 源文件中的 Scene(场景)根节点下添加 Background(背景)节点和 Shape(模型)

节点,背景节点的颜色取银白色以突出二维立体几何造型的显示效果。在 Shape(模型)节点 下增加 Appearance(外观)节点和 Material(外观材料)节点,对物体造型的外观颜色,物体 发光颜色,外观材料的亮度及透明度进行设计,以提高空间 2D 几何 TriangleSet2D(三角形)

节点的显示效果。在几何造型节点中创建 TriangleSet2D(三角形)节点,根据设计需求设置

三角形相应的点以显示三角,改变三角形点的位置来改变三角形的形状、大小和尺寸。

运行 X3D 虚拟现实二维 TriangleSet2D(三角形)节点造型程序。首先,启动 Xj3d-browser 浏览器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择“X3D 网页设计--源程序/第 3 章实 例源程序/pvrml3-6.wrl”路径,即可运行虚拟现实二维空间 TriangleSet2D(三角形)节点场景 造型,如图 3-6 所示。

图 3-6 TriangleSet2D(三角形)节点运行效果图

在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D/VRML 源程序:pvrml3-6.wrl。

相關文件