• 沒有找到結果。

X3D三维立体网页设计 - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "X3D三维立体网页设计 - 万水书苑-出版资源网"

Copied!
33
0
0

加載中.... (立即查看全文)

全文

(1)第 3 章 X3D 几何 2D 节点设计 X3D 三维立体网页几何 2D 节点由 Shape 模型节点、二维几何造型节点及相关基本节点组 成。在利用 X3D 几何 2D 节点创建二维几何造型时,还可以对其进行着色。X3D 三维立体网 页几何 2D 节点设计包含在 Shape(模型)节点下,Shape(模型)节点由 Appearance(外观) 节点和几何造型节点构成。Appearance(外观)节点定义了物体造型的外观,包括纹理映像、 纹理坐标变换及外观的材料等;Geometry(几何造型)节点定义了立体空间物体的几何造型, 如二维平面基本几何造型节点 Arc2D、ArcClose2D、Circle2D 和 Disk2D 节点等分别用来绘制 圆弧、封闭圆弧、圆和环等二维空间平面造型等基本的几何模型。 在 X3D 三维立体网页几何 2D 节点组件中,使用模型组件中定义的 Shape(模型)节点中 的几何属性(Geometry properties)和外观节点。可以将 2D 几何(Geometry2D)节点可看作 是一些平面对象(planar objects)。在 X3D 中所有的二维空间节点造型是由二维坐标系指定的 在当前三维坐标系中(x,y,0)的二维平面,二维坐标系的原点与三维坐标系的原点重合。在 X3D 文件中的二维平面几何造型节点(组件)是由 x、y 轴形成的平面构成的各种几何图形, 如圆弧、圆、圆盘、圆环等。 X3D 三维立体网页几何 2D 节点还包括 FillProperties(填充物)节点、LineSet(线)节点、 LineProperties(线填充物)节点、Polypoint2D(点)节点、Polyline2D(线)节点、TriangleSet2D (三角形 2D)节点、Contour2D 节点、ContourPolyline2D 节点、Coordinate 节点、CoordinateDouble 节点、TriangleSet(三角形)节点、TriangleStripSet(三角形条带)节点、TriangleFanSet(三 角形扇面)节点等。利用 X3D 三维立体网页几何 2D 节点创建的造型编程简洁、快速、方便, 有利于浏览器的快速浏览,提高软件编程和运行的效率。本文重点介绍 2D 节点的语法结构和 节点的语法定义,并结合实例源程序进一步理解软件开发与设计的过程。. 3.1. Arc2D 节点. Arc2D 是一个几何 2D 节点。Arc2D 指定一个圆弧的半径、起始角度和扫过的角度。其中, 在增加 Geometry 或 Appearance 节点之前先插入一个 Shape 节点。此节点指定了圆心在(0,0) 的角度从正 x 轴开始向正 y 轴扫描(sweep)的线性的圆弧。radius 域指定了那一部分的圆弧 的半径。圆弧从 startAngle 开始逆时针扩展到 endAngle。radius 的值应当大于 0。startAngle 与 endAngle 的取值范围是 0~6.242(弧度)。如果 startAngle 与 endAgle 有同样的值,那么就形 成了一个圆。 Arc2D(弧)节点定义了一个圆弧平面几何造型,是 X3D 平面几何 2D 造型节点,一般作 为 Shape 节点中 Geometry 子节点。根据弧节点的圆弧半径大小,开始圆弧到结束圆弧的弧度 数形成圆弧轨迹,可以调整圆弧半径大小和起始与终止弧度数使圆弧发生改变。利用 Shape 节点中 Appearance(外观)和 Material(材料)子节点描述 Arc2D(弧)节点的纹理材质、颜 色、发光效果、明暗、光的反射及透明度等,提高开发与设计的效果。.

(2) 第3章 X3D 几何 2D 节点设计. 1.Arc2D(弧)节点语法定义 Arc2D 节点在 Shape 模型节点的 Geometry 或 Appearance 节点范围内使用。 Arc2D(弧)节点语法定义了一组用于确定二维立体空间圆弧的属性或域,利用 Arc2D(弧) 节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来创建一个效果更加理想的 二维立体空间圆弧造型。主要利用 Arc2D(弧)节点中的 radius(圆弧半径)、startAngle(起 始弧度)、endAngle(终止弧度)等参数设置创建 X3D 二维立体平面圆弧造型。 Arc2D(弧)节点语法定义如下: Arc2D(弧)节点 { 域名 DEF USE radius startAngle endAngle containerField class }. 域值 ID IDREF 1.0 0.0 1.570796 geometry. 域数据类型. 存储/访问类型. SFFloat SFFloat SFFloat. initializeOnly initializeOnly initializeOnly. 2.Arc2D(弧)节点数据描述 Arc2D(弧)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内容(架 构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFFloat 域,是单值单精度浮 点数;②SFBool 域,是一个单值布尔量,取值为 true 或 false。事件的存储/访问类型描述:表 示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly (初始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。 3.Arc2D(弧)节点详解 Arc2D(弧)节点包含 DEF、USE、radius、startAngle、endAngle、containerField 及 class 等域。 radius 域:指定那一部分的圆弧的半径,radius 的值应当大于 0,其中 radius 的默认值为 1.0。其中,该域值几何尺寸一旦初始化后就不可以再更改,可以使用 Transform 缩放尺寸。 startAngle 域:指定圆弧的起始弧度,初始值为 0.0,取值范围为 0~2π,圆弧从 startAngle 逆时针旋转到 endAngle,值用弧度值表示。其中该域值的几何尺寸一旦初始化后就不可以再 更改,可以使用 Transform 缩放。 endAngle 域:指定了圆弧的终止弧度,初始值为 1.570796,取值范围为 0~2π,圆弧从 startAngle 逆时针旋转到 endAngle,值用弧度值表示。其中该域值的几何尺寸一旦初始化后就 不可以再更改,可以使用 Transform 缩放。 containerField 域:表示容器域是 field 域标签的前缀,表示了子节点和父节点的关系。该 容器域名称为 geometry,包含几何造型节点。如 geometry Box、children Group、proxy Shape。 containerField 属性只有在 X3D 场景用 XML 编码时才使用。 class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML 编码时才支持 class 属性。 DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节. 39.

(3) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。 USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率, 该属性是可选项。 4.Arc2D(弧)节点源程序实例 Arc2D(弧)节点是在 Shape(模型)节点中的 Geometry(几何造型)子节点下创建二维 圆弧平面造型,使用 Appearance(外观)子节点和 Material(材料)子节点描述空间物体造型 的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的亮度及透明度 等,使二维空间场景和造型更具真实感。 【例 3-1】在 X3D 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance(外 观)节点和 Material(外观材料)节点以及 Arc2D(弧)节点,创建一个二维几何圆弧造型。 Arc2D(弧)节点几何场景设计 X3D 文件 pvrml3-1.wrl 展示如下: #VRML V2.0 utf8 # META "filename" "pvrml3-1.wrl" # META "author" "zjz-zjr-zjd" EXTERNPROTO Arc2D [ field SFFloat startAngle field SFFloat endAngle field SFFloat radius exposedField SFNode metadata # [appinfo] Metadata node only ][ "Geometry2dComponentPrototypes.wrl#Arc2D" ] # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo Background { skyColor [ 0.98 0.98 0.98 ] } Shape { appearance Appearance { material Material { diffuseColor 0.8 0.2 0.2 } } geometry Arc2D { startAngle 0.524 endAngle 4.141 radius 2 } }. 在 X3D/VRML 源文件中添加 Background(背景)节点、Shape(模型)节点及 Arc2D 节 点,背景节点的颜色取银白色,以突出二维立体几何造型的显示效果。在 Shape(模型)节点. 40.

(4) 第3章 X3D 几何 2D 节点设计. 下增加 Appearance(外观)节点和 Material(材料)节点,对物体造型的外观颜色、物体发光 颜色、外观材料的亮度及透明度进行设计,以提高空间二维几何圆弧的显示效果。 运行 X3D/VRML 虚拟现实二维 Arc2D(弧)节点造型程序。首先,启动 Xj3d-browser 浏 览器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择“X3D 网页设计--源程序/第 3 章实例 源程序/pvrml3-1.wrl”路径,即可运行虚拟现实二维空间圆弧场景造型程序。 在三维立体空间背景下,圆弧的半径为 2,圆弧的圆心为(0,0) ,起始弧为 0.524,终止 弧为 4.141,颜色为蓝色,Arc2D(弧)节点运行后的场景效果,如图 3-1 所示。. 图 3-1 Arc2D(弧)节点运行效果图. 在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D/VRML 源程序:pvrml3-1.wrl。. 3.2. Circle2D 节点. Circle2D(平面圆)节点作为模型组件内定义的 Shape(模型)节点中几何造型节点的子 节点,而外观节点用于描述几何造型的外观和材料的颜色和透明度等。 Circle2D(平面圆)节点定义了一个封闭圆 2D 几何造型,是 X3D 基本平面几何造型节点, 一般作为 Shape 节点中 Geometry 子节点。利用 Shape 节点中的 Appearance(外观)和 Material (材料)子节点描述 Circle2D(平面圆)节点的纹理材质、颜色、发光效果、明暗、光的反射 及透明度等。提高开发与设计的效果。 1.Circle2D(平面圆)节点语法定义 Circle2D(平面圆)节点是一个平面几何造型节点,指定一个封闭平面圆,以圆点(0,0) 为圆心,以圆的半径大小形成封闭平面圆图形。该节点在 Shape(模型)节点的 Geometry 节 41.

(5) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 点内使用。Circle2D(平面圆)节点语法定义了一组用于确定二维立体空间封闭平面圆的属性 或域,利用 Circle2D(平面圆)节点的域名、域值、域的数据类型及事件的存储/访问权限的 定义来创建一个效果更加理想的二维立体空间封闭平面圆造型。利用 Circle2D(平面圆)节点 中的 radius(圆的半径)等参数设置创建 X3D/VRML 二维立体平面圆造型。 Circle2D(平面圆)节点语法定义如下: Circle2D(平面圆)节点 { 域名 域值 DEF ID USE IDREF radius 1.0 containerField geometry class }. 域数据类型. 存储/访问类型. SFFloat. initializeOnly. 2.Circle2D(平面圆)节点数据描述 Circle2D(平面圆)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内 容包含在一对花括号中,用“{}”表示。域数据类型描述:①SFFloat 域,是单值单精度浮点 数;②SFBool 域,是一个单值布尔量,取值为 true 或 false。事件的存储/访问类型描述:表示 域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类型) 、initializeOnly (初始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。 3.Circle2D(平面圆)节点详解 Circle2D(平面圆)节点包含 DEF、USE、radius、containerField 及 class 域等。 radius 域:指定了封闭平面圆的半径,radius 的值应当大于 0,其中 radius 的默认值为 1.0, 取值范围为[0,∞)。其中,该域值几何尺寸一旦初始化后就不可以再更改,可以使用 Transform 缩放尺寸。 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.Circle2D(平面圆)节点源程序实例 Circle2D(平面圆)节点是在 Shape(模型)节点中的 Geometry(几何造型)子节点下创 建二维封闭平面圆造型,使用 Appearance(外观)子节点和 Material(材料)子节点描述空间 物体造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的亮度 及透明度等,使二维空间场景和造型更具真实感。 42.

(6) 第3章 X3D 几何 2D 节点设计. 【例 3-2】在 X3D 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance(外 观)子节点和 Material(外观材料)子节点及 Circle2D(平面圆)节点在三维立体空间背景下, 创建一个红色 2D 封闭平面圆。Circle2D(平面圆)节点几何场景设计 X3D/VRML 文件 pvrml3-2.wrl 展示如下: #VRML V2.0 utf8 # META "filename" "pvrml3-2.wrl" # META "author" "zjz-zjr-zjd" EXTERNPROTO Circle2D [ field SFFloat radius field SFBool solid exposedField SFNode metadata # [appinfo] Metadata node only ][ "Geometry2dComponentPrototypes.wrl#Circle2D" ] # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } Background { skyColor [ 0.98 0.98 0.98 ] } Shape { appearance Appearance { material Material { diffuseColor 1.0 0.0 0.0 } } geometry Circle2D { radius 2 } }. 在 X3D 源文件中的 Scene(场景)根节点下添加 Background(背景)节点和 Shape(模型) 节点,背景节点的颜色取银白色以突出 2D 几何造型的显示效果。在 Shape(模型)节点下增 加 Appearance(外观)节点和 Material(材料)节点,对物体造型的外观颜色,物体发光颜色, 外观材料的亮度及透明度进行设计,以提高空间二维几何平面圆的显示效果。在几何造型节点 中创建 Circle2D(平面圆)节点,根据设计需求设置封闭(平面圆)节点半径的尺寸大小,改 变平面圆的大小和尺寸。 运行 X3D 虚拟现实二维 Circle2D(平面圆)节点造型程序。首先,启动 Xj3d-browser 浏 览器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择 “X3D 网页设计--源程序/第 3 章实 例源程序/pvrml3-2.wrl”路径,即可运行虚拟现实二维空间平面圆场景造型程序,在三维立体 空间背景下,平面圆的半径为 2,平面圆的圆心为(0,0),平面圆的颜色为红色,Circle2D(平 面圆)节点运行后的场景效果如图 3-2 所示。. 43.

(7) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 图 3-2 Circle2D(平面圆)节点运行效果图. 在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D/VRML 源程序:pvrml3-2.wrl。. 3.3. ArcClose2D 节点. ArcClose2D(封闭圆弧)节点作为模型组件内定义的 Shape(模型)中几何造型节点的子 节点,而外观节点用于描述几何造型的外观和材料的颜色和透明度等。 ArcClose2D(封闭圆弧)节点是一个基本平面几何造型节点。ArcClose2D(封闭圆弧) 节点指定一个封闭圆弧的半径、起始角度和扫过的角度及圆弧的封闭类型等。该节点指定了圆 心在(0,0)的角度从正 x 轴开始向正 y 轴扫描(sweep)的线性的封闭圆弧。radius 域指定 了那一部分的封闭圆弧的半径。封闭圆弧从 startAngle 开始逆时针扩展到 endAngle。radius 的 值应当大于 0。startAngle 与 endAngle 的取值范围是 0~2π(角度)。封闭圆弧的类型决定了封 闭圆弧是从弧的两端连接到圆心,还是直接连接圆弧的两个端点。 1.ArcClose2D(封闭圆弧)节点语法定义 ArcClose2D(封闭圆弧)节点是一个平面几何造型节点,指定一个封闭圆弧的半径,以 圆点(0,0)为圆心,起始角度和结束角度及封闭类型所形成封闭圆弧图形。该节点是 Shape (模型)节点的 Geometry 子节点。ArcClose2D(封闭圆弧)节点指定了圆心在(0,0)点的 角度从 startAngle 开始逆时针扩展到 endAngle 以及封闭类型形成的线性的封闭圆弧的一部分。 该节点在 Shape(模型)节点的 Geometry 或 Appearance 节点内使用。 ArcClose2D(封闭圆弧)节点语法定义了一组二维立体空间封闭圆弧的属性或域,利用 ArcClose2D(封闭圆弧)节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来. 44.

(8) 第3章 X3D 几何 2D 节点设计. 创建一个效果更加理想的二维立体空间封闭圆弧造型。主要利用 ArcClose2D(封闭圆弧)节 点中的 radius(封闭圆弧半径)、startAngle(起始弧度)、endAngle(终止弧度)、closureType (封闭类型) 、solid 等参数设置创建 X3D 二维立体平面封闭圆弧造型。 ArcClose2D(封闭圆弧)节点语法定义如下: ArcClose2D(封闭圆弧)节点 { 域名 域值 DEF ID USE IDREF radius 1.0 startAngle 0.0 endAngle 1.570796 closureType PIE solid true containerField geometry class }. 域数据类型. 存储/访问类型. SFFloat SFFloat SFFloat. initializeOnly initializeOnly initializeOnly initializeOnly initializeOnly. SFBool. 2.ArcClose2D(封闭圆弧)节点数据描述 ArcClose2D(封闭圆弧)节点包含域名、域值、域数据类型及存储/访问类型等,节点中 数据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFFloat 域,是 单值单精度浮点数;②SFBool 域,是一个单值布尔量,取值范围为 true 或 false。事件的存储/ 访问类型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输 出类型)、initializeOnly(初始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点 必须提供该属性值。 3.ArcClose2D(封闭圆弧)节点详解 ArcClose2D(封闭圆弧)节点包含 DEF、USE、radius、startAngle、endAngle、closureType、 solid、containerField 及 class 等域。 radius 域:指定那一部分的封闭圆弧的半径,radius 的值应当大于 0,其中 radius 的默认值 为 1.0。其中,该域值几何尺寸一旦初始化后就不可以再更改,可以使用 Transform 缩放尺寸。 startAngle 域:指定封闭圆弧的起始弧度,初始值为 0.0,取值范围为 0~2π,圆弧从 startAngle 逆时针旋转到 endAngle,值用弧度值表示。其中该域值的几何尺寸一旦初始化后就 不可以再更改,可以使用 Transform 缩放。 endAngle 域:指定封闭圆弧的终止弧度,初始值为 1.570796,取值范围为 0~2π,圆弧从 startAngle 逆时针旋转到 endAngle,值用弧度值表示。其中该域值的几何尺寸一旦初始化后就 不可以再更改,可以使用 Transform 缩放。 closureType 域:指定了圆弧的封闭类型,该域值有两种封闭连接方式:①PIE 方式是指从 弧的两端连接到圆心,即通过定义两条线段,先从终点到圆心,然后又从圆心到起点,来连接 起点与终点。②CHORD 方式是指直接连接圆弧的两个端点,即通过定义一条从终点到起点的 直线来连接起点和终点,即从圆弧的两端连接到圆心(PIE),或直接连接圆弧的两个端点 (CHORD) ,其中该几何参数一旦初始化后就不可以再更改。 solid 域:定义一个封闭圆弧几何造型表面和背面绘制的布尔量,当该域值为 true 时,表 示只构建封闭圆弧几何造型对象的表面,不构建背面;当该域值为 false 时,表示封闭圆弧几 45.

(9) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 何造型对象的正面和背面均构建。该域值的取值为 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.ArcClose2D(封闭圆弧)节点源程序实例 ArcClose2D(封闭圆弧)节点是在 Shape(模型)节点中的 Geometry(几何)子节点下创 建二维封闭圆弧平面造型,使用 Appearance(外观)子节点和 Material(外观材料)子节点描 述空间物体造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料 的亮度及透明度等,使二维空间场景和造型更具真实感。 【例 3-3】在 X3D/VRML 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance (外观)子节点和 Material(外观材料)节点及 ArcClose2D(封闭圆弧)节点,创建一个红色、 120 度的二维几何封闭圆弧造型。ArcClose2D(封闭圆弧)节点几何场景设计 X3D/VRML 文 件 pvrml3-3.wrl 展示如下: #VRML V2.0 utf8 # META "filename" "pvrml3-3.wrl" # META "author" "zjz-zjr-zjd" EXTERNPROTO ArcClose2D [ field SFFloat startAngle field SFFloat endAngle field SFFloat radius field SFString closureType field SFBool solid exposedField SFNode metadata # [appinfo] Metadata node only ][ "Geometry2dComponentPrototypes.wrl#ArcClose2D" ] # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } Background { skyColor [ 0.98 0.98 0.98 ] } Shape { appearance Appearance { material Material {. 46.

(10) 第3章 X3D 几何 2D 节点设计. diffuseColor 0.0 0.8 0.0 } } geometry ArcClose2D { startAngle 0.524 endAngle 2.618 radius 3 solid TRUE } }. 在 X3D/VRML 源文件中添加 Background(背景)节点和 Shape(模型)节点,背景节点 的颜色取银白色,以突出 2D 立体几何造型的显示效果。在 Shape(模型)节点下增加 Appearance (外观)节点和 Material(外观材料)节点,对物体造型的外观颜色,物体发光颜色,外观材 料的亮度及透明度进行设计,以提高空间二维几何圆弧的显示效果。在几何造型节点中创建 ArcClose2D(封闭圆弧)节点,根据设计需求设置封闭圆弧节点半径的尺寸大小、起始与终止 弧度及封闭类型,改变封闭圆弧的大小和尺寸。 运行 X3D 虚拟现实二维 ArcClose2D(封闭圆弧)节点造型程序。首先,启动 Xj3d-browser 浏览器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择“X3D 网页设计--源程序/第 3 章实 例源程序/pvrml3-3.wrl”路径,即可运行虚拟现实 2D 空间封闭圆弧场景造型程序。 在三维立体空间背景下,圆弧的半径为 2,圆弧的圆心为(0,0) ,起始弧为 0.524,终止 弧为 2.618,填充封闭圆弧的颜色为绿色,ArcClose2D(封闭圆弧)节点运行后的场景效果如 图 3-3 所示。. 图 3-3 ArcClose2D(封闭圆弧)节点运行效果图. 在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D 源程. 47.

(11) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 序:pvrml3-3.wrl。. 3.4. Rectangle2D 节点. Rectangle2D(平面矩形)节点作为模型组件内定义的 Shape(模型)节点中几何造型节点 的子节点,而外观节点用于描述几何造型的外观和材料的颜色和透明度等。在 x、y 轴形成的 平面构成的各种几何图形,如圆弧、圆、圆盘、圆环和矩形等。 1.Rectangle2D(平面矩形)节点语法定义 Rectangle2D(平面矩形)节点是一个平面几何造型节点,指定一个平面矩形图形,根据 矩形长和宽生成一个平面矩形,该节点是 Shape(模型)节点的 Geometry 子节点。Rectangle2D (平面矩形)节点语法定义了一组二维立体空间平面矩形的属性或域,利用 Rectangle2D(平 面矩形)节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来创建一个效果更 加理想的二维立体空间平面矩形造型。利用 Rectangle2D(平面矩形)节点中的 size(尺寸)、 solid 等参数设置创建 X3D 二维立体平面矩形造型。 Rectangle2D(平面矩形)节点语法定义如下: Rectangle2D(平面矩形)节点 { 域名 域值 DEF ID USE IDREF size 2.0 2.0 solid true containerField geometry class }. 域数据类型. 存储/访问类型. SFVec2f SFBool. initializeOnly initializeOnly. 2.Rectangle2D(平面矩形)节点数据描述 Rectangle2D(平面矩形)节点包含域名、域值、域数据类型及存储/访问类型等,节点中 数据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFFloat 域,是 单值单精度浮点数;②SFBool 域:是一个单值布尔量,取值为 true 或 false。③SFVec2f 域: 定义了一个二维矢量。事件的存储/访问类型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)及 inputOutput (输入/输出类型)等,用来描述该节点必须提供该属性值。 3.Rectangle2D(平面矩形)节点详解 Rectangle2D(平面矩形)节点包含 DEF、USE、size、solid、containerField 及 class 域等。 size 域:指定一个以原点为中心的空间二维矩形的长和宽的尺寸大小。该域值在当前的本 地 2D 坐标系内指定了一个中心在(0,0)处与本地坐标系相对齐的矩形。size 域指定了矩形 在 x 轴和 y 轴分别的扩展,每个值都需大于 0,初值为(2.0 2.0) ,取值范围为(0,∞)。 solid 域:定义一个平面矩形几何造型表面和背面绘制的布尔量,当该域值为 true 时,表 示只构建平面矩形几何造型对象的表面,不构建背面;当该域值为 false 时,表示平面矩形几 何造型对象的正面和背面均构建。该域值的取值为 true 或 false,其默认值为 true。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容. 48.

(12) 第3章 X3D 几何 2D 节点设计. 器域名称为 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.Rectangle2D(平面矩形)节点源程序实例 Rectangle2D(平面矩形)节点是在 Shape(模型)节点中的 Geometry(几何)子节点下 创建二维平面矩形造型,使用 Appearance(外观)子节点和 Material(外观材料)子节点描述 空间物体造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的 亮度及透明度等,使二维空间场景和造型更具真实感。 【例 3-4】在 X3D 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance(外 观)子节点和 Material(外观材料)子节点及 Rectangle2D(平面矩形)节点,创建一个黄色 几何平面矩形造型。Rectangle2D(平面矩形)节点几何场景设计 X3D/VRML 文件 pvrml3-4.wrl 展示如下: #VRML V2.0 utf8 # META "filename" "pvrml3-4.wrl" # META "author" "zjz-zjr-zjd" EXTERNPROTO Rectangle2D [ field SFVec2f size field SFBool solid exposedField SFNode metadata # [appinfo] Metadata node only ][ "Geometry2dComponentPrototypes.wrl#Rectangle2D" ] # [Scene] ========== ========== ========== NavigationInfo { type [ "EXAMINE" "ANY" ] } Background { skyColor [ 0.98 0.98 0.98 ] } Shape { appearance Appearance { material Material { diffuseColor 1.0 1.0 0.0 } } geometry Rectangle2D { size 5 3 solid TRUE 49.

(13) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. } }. 在 X3D/VRML 源文件中的 Scene(场景)根节点下添加 Background(背景)节点和 Shape (模型)节点,背景节点的颜色取银白色,以突出二维立体几何造型的显示效果。在 Shape(模 型)节点下增加 Appearance(外观)节点和 Material(外观材料)节点,对物体造型的外观颜 色,物体发光颜色,外观材料的亮度及透明度进行设计,以提高空间二维几何平面矩形的显示 效果。在几何造型节点中创建 Rectangle2D(平面矩形)节点,根据设计需求设置平面矩形节 点长和宽的尺寸大小,改变平面矩形的大小和尺寸。 运行 X3D 虚拟现实二维 Rectangle2D(平面矩形)节点造型程序。首先,启动 Xj3d-browser 浏览器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择“X3D 网页设计--源程序/第 3 章实 例源程序/px3d3-4.wrl”路径,即可运行虚拟现实二维空间平面矩形场景造型程序。 在三维立体空间背景下,平面矩形的长为 5,宽为 3,平面矩形的颜色为黄色,Rectangle2D (平面矩形)节点运行后的场景效果如图 3-4 所示。. 图 3-4 Rectangle2D(平面矩形)节点运行效果图. 在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D 源程 序 pvrml3-4.wrl。. 3.5. Disk2D 节点. Disk2D(填充圆)节点作为模型组件内定义的 Shape(模型)节点中几何造型节点的子节 点,而外观节点用于描述几何造型的外观和材料的颜色和透明度等。 Disk2D(填充圆)节点是一个基本平面几何造型节点,该节点在(x,y)坐标系内指定 了一个 2D 平面填充范围的圆形。Disk2D(填充圆)节点通过填充圆节点的内径和外径尺寸指 50.

(14) 第3章 X3D 几何 2D 节点设计. 定一个平面填充圆。通过调整填充圆的内径和外径大小改变填充圆图形的大小和尺寸。 1.Disk2D(填充圆)节点语法定义 Disk2D(填充圆)节点是一个平面几何造型节点,在 2D 坐标系里指定了一个中心为(0, 0)的填充范围的圆形。根据填充圆内径和外径的大小生成一个填充圆形。该节点是 Shape(模 型)节点的 Geometry 子节点。 Disk2D(填充圆)节点语法定义了一组二维立体空间填充圆的属性或域,利用 Disk2D(填 充圆)节点的域名、域值、域的数据类型,以及事件的存储/访问权限的定义来创建一个效果 更加理想的二维立体空间填充圆造型。利用 Disk2D(填充圆)节点中的 innerRadius(内半径)、 outerRadius(外半径)、solid 等参数设置创建 X3D 二维立体填充圆造型。 Disk2D(填充圆)节点语法定义如下: Disk2D(填充圆)节点 { 域名 DEF USE innerRadius outerRadius solid containerField class }. 域值 ID IDREF 0.0 1.0 true geometry. 域数据类型. 存储/访问类型. SFFloat SFFloat SFBool. initializeOnly initializeOnly initializeOnly. 2.Disk2D(填充圆)节点数据描述 Rectangle2D(平面矩形)节点包含域名、域值、域数据类型及存储/访问类型等,节点中 数据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFFloat 域,是 单值单精度浮点数;②SFBool 域,是一个单值布尔量,取值为 true 或 false。事件的存储/访问 类型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出 类型)、initializeOnly(初始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点必 须提供该属性值。 3.Disk2D(填充圆)节点详解 Disk2D(填充圆)节点包含 DEF、USE、innerRadius、outerRadius、solid、containerField 及 class 域。 innerRadius 域:指定了圆盘的内部尺寸,默认值为 0.0,取值范围为(0,∞)。其中几何 尺寸一旦初始化后就不可以再更改,可以使用 Transform 缩放尺寸。 outerRadius 域:指定了圆盘的外部尺寸。outerRadius 应该大于或等于 0,如果 innerRadius 为 0,Disk2D 就形成一个完全被填充的圆盘,否则 Disk2D 是有一定宽度的圆环。其默认值为 1.0,取值范围为(0,∞)。 solid 域:定义了一个填充圆几何造型表面和背面绘制的布尔量,当该域值为 true 时,表 示只构建填充圆几何造型对象的表面,不构建背面;当该域值为 false 时,表示填充圆几何造 型对象的正面和背面均构建。该域值的取值为 true 或 false,其默认值为 true。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 geometry,包含几何造型节点,如 geometry Box、children Group、proxy Shape。. 51.

(15) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. containerField 属性只有在 X3D 场景用 XML 编码时才使用。 class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML 编码时才支持 class 属性。 DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。 USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。 4.Disk2D(填充圆)节点源程序实例 Disk2D(填充圆)节点是在 Shape(模型)节点中的 Geometry(几何)子节点下创建二 维填充圆造型,使用 Appearance(外观)子节点和 Material(外观材料)子节点描述空间物体 造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的亮度及透 明度等,使二维空间场景和造型更具真实感。 【例 3-5】在 X3D 三维立体空间场景环境下,利用 Shape(模型)节点、Appearance(外 观)子节点和 Material(外观材料)子节点及 Disk2D(填充圆)节点,创建一个颜色为苹果绿 的几何填充圆。Disk2D(填充圆)节点几何场景设计 X3D/VRML 文件 pvrml3-5.wrl 展示如下: #VRML V2.0 utf8 # META "filename" "pvrml3-5.wrl" # META "author" "zjz-zjr-zjd" EXTERNPROTO Disk2D [ field SFFloat innerRadius field SFFloat outerRadius field SFBool solid exposedField SFNode metadata # [appinfo] Metadata node only ][ "Geometry2dComponentPrototypes.wrl#Disk2D" ] # [Scene] ============================== NavigationInfo { type [ "EXAMINE" "ANY" ] } Background { skyColor [ 0.98 0.98 0.98 ] } Shape { appearance Appearance { material Material { diffuseColor 0.2 1.0 0.8 } } geometry Disk2D { innerRadius 1 outerRadius 2 solid TRUE. 52.

(16) 第3章 X3D 几何 2D 节点设计. } }. 在 X3D 源文件中的 Scene(场景)根节点下添加 Background(背景)节点和 Shape(模型) 节点,背景节点的颜色取银白色,以突出二维立体几何造型的显示效果。在 Shape(模型)节 点下增加 Appearance(外观)节点和 Material(外观材料)节点,对物体造型的外观颜色,物 体发光颜色,外观材料的亮度及透明度进行设计,以提高空间 2D 几何平面圆的显示效果。在 几何造型节点中创建 Disk2D(填充圆)节点,根据设计需求设置(填充圆)节点的内径和外 径的尺寸大小,改变填充圆图形的大小和尺寸。 运行 X3D 虚拟现实二维 Disk2D(填充圆)节点造型程序。首先,启动 Xj3d-browser 浏览 器,然后在 Xj3d2.0 浏览器中,单击 Open 按钮,选择“X3D 网页设计--源程序/第 3 章实例源 程序/pvrml3-5.wrl”路径,即可运行虚拟现实二维空间填充圆场景造型,在三维立体空间背景 下,填充圆节点的内径为 1 和外径为 2,填充圆的颜色为苹果绿,Disk2D(填充圆)节点运行 后的场景效果如图 3-5 所示。. 图 3-5 Disk2D(填充圆)节点运行效果图. 在本书配套的光盘中,在“X3D 实例源程序/第 3 章实例源程序”目录下,提供 X3D 源程 序 pvrml3-5.wrl 源程序。. 3.6. FillProperties 节点. FillProperties(填充物)节点用于填充 2D 图形,该节点作为模型组件内定义的 Shape(模 型)节点下的一个子节点,是描述二维平面几何造型节点的填充物情况,而外观节点用于描述 几何造型的外观和材料的颜色和透明度等。FillProperties(填充物)节点用于填充 2D 图形, 对各种不同基本平面几何(2D 图形)节点进行填充设计。 53.

(17) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 1.FillProperties(填充物)节点语法定义 FillProperties(填充物)节点是一个平面几何 2D 图形填充节点,位于 Shape(模型)节点 下的 FillProperties(填充物)子节点,用于对基本平面几何 2D 图形进行填充设计,该节点与 Appearance(外观)节点是同一级子节点。 FillProperties(填充物)节点语法定义了一组用 于 2D 图形填充的属性或域,利用 FillProperties(填充物)节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来创 建一个效果更加理想的 2D 图形填充造型。利用 FillProperties(填充物)节点中的 filled(填充 标志)、hatched(画阴影线)、hatchStyle(阴影线样式)、hatchColor(阴影线颜色)等参数设 置创建 X3D 二维立体几何造型。 FillProperties(填充物)节点语法定义如下: FillProperties(填充物)节点 { 域名 域值 DEF ID USE IDREF filled true hatched true hatchStyle 1 hatchColor 1.0 1.0 1.0 containerField fillProperties class }. 域数据类型. 存储/访问类型. SFBool SFBool SFInt32 SFColor. inputOutput inputOutput inputOutput inputOutput. 2.FillProperties(填充物)节点数据描述 FillProperties(填充物)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数 据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFInt32 域,是一 个单值含有 32 位的整数;②SFBool 域,是一个单值布尔量,取值为 true 或 false;③SFColor 域,只有一个颜色的单值域,它指定了红、绿、蓝(RGB)三个浮点数。事件的存储/访问类 型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类 型)、initializeOnly(初始化类型)以及 inputOutput(输入/输出类型)等,用来描述该节点必 须提供该属性值。 3.FillProperties(填充物)节点详解 FillProperties(填充物)节点包含 DEF、USE、filled、hatched、hatchStyle、hatchColor、 containerField 及 class 等域。 Filled 域:指定一个相关几何体 2D 图形是否被填充,是一个单值布尔量,取值为 true 或 false。如果值为 true 表示填充,如果值为 false 表示不填充,默认值为 true。 hatched 域:指定一个相关几何体 2D 图形是否画阴影线,是一个单值布尔量,取值为 true 或 false。如果值为 true 表示填充,如果值为 false 表示不填充,默认值为 true。 hatchStyle 域:选择一个阴影线样式,此阴影线样式及其编号采用 International Register of Graphical Items 中的定义。其中:1 为水平的等间距平行线;2 为垂直的等间距平行线;3 为 正向等间距平行斜线;4 为反向等间距平行斜线;5 为水平/垂直交错格线;6 为正/反向交错斜 线格;7=(cast iron or malleable iron and general use for all materials);8=(steel);9=(bronze, brass,. 54.

(18) 第3章 X3D 几何 2D 节点设计. copper, and compositions);10=(white metal, zinc, lead, babbit, and alloys);11=(magnesium, aluminum, and aluminum alloys);12=(rubber, plastic, and electrical insulation);13=(cork, felt, fabric, leather, and fiber) ;14=(thermal insulation);15=(titanium and refi-actory material) ; 16=(marble, slate, porcelain, glass, etc.);17=(earth);18=(sand);19=(repeating dot)。默认值为 1。 hatchColor 域:指定一个阴影线的颜色,是一个单值的颜色域,它指定了红、绿、蓝(RGB) 三个浮点数,初值为“1.0 1.0 1.0”。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 FillProperties,包含几何造型节点,如 geometry Box、children Group、proxy Shape。 containerField 属性只有在 X3D 场景用 XML 编码时才使用。 class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML 编码时才支持 class 属性。 DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。 USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.7. LineSet 节点. LineSet(线)节点是使用线来构造空间造型。X3D 中的线是虚拟世界中两个端点之间的 直线。要想确定一条直线,就必须指定这条线的起点和终点,也可以在 X3D 中创建折线,多 条直线构成角度在端点连接起来就成了折线。浏览器是用顶点的顺序来连接直线的,在列表前 面的点先进行连接。LineSet(线)节点利用线的顶点数描述每条折线中使用 Coordinate 子节 点域中的坐标点(顶点坐标)的多少,通过获取的 vertexCount[n],Coordinate 中的顶点被分 配到每段线上。LineSet(线)节点描述了一个空间线的几何造型。根据线节点的顶点数和点 的坐标位置确定线的方位。LineSet(线)节点通常作为 Shape 节点中 Geometry(几何造型) 子节点。 LineSet(线)节点是一个几何造型节点,此节点可以包括 Color 节点和 Coordinate 节点。 Color 值或 Material emissiveColor 值可以指定画线或画点的颜色。线不受光照的影响,不能做 贴图,它们也不做碰撞检测。其中,使用和背景不同的 Color 值或 Material emissiveColor 值。 如果用原来给 IndexedFaceSet 定义的 Coordinate points 改写,index 值需要循环到初始顶点,以 使每个多边形的轮廓闭合。 1.LineSet(线)节点语法定义 LineSet(线)节点表示一个几何造型节点,可以创建一个三维立体空间线造型,根据开 发与设计需求设置空间物体线的顶点数、点的坐标来确定空间线的位置。还可以利用 Appearance(外观)节点和 Material(外观材料)节点来描述 LineSet(线)节点的纹理材质、 颜色、发光效果、明暗及透明度等。 LineSet(线)节点语法定义了一组用于确定线的属性或和域,利用 LineSet(线)节点的 55.

(19) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 域名、域值、域的数据类型以及事件的存储/访问权限的定义来创建一个效果更加理想的三维 立体空间线造型。利用 LineSet(线)节点中的 vertexCount(顶点数)等参数设置创建 X3D 三维立体空间线造型。 LineSet(线)节点语法定义如下: LineSet(线)节点 {. 域名 DEF USE vertexCount containerField class. 域值 ID IDREF. 域数据类型. 存储/访问类型. MFInt32. initializeOnly. geometry. }. 2.LineSet(线)节点数据描述 LineSet(线)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内容(架 构)包含在一对花括号中,用“{}”表示。域数据类型描述 MFInt32 域,是一个多值含有 32 位的整数。事件的存储/访问类型描述:表示域(属性)的存储/访问类型,包括 inputOnly(输 入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)及 inputOutput(输入/输出类 型)等,用来描述该节点必须提供该属性值。 3.LineSet(线)节点详解 LineSet(线)节点包含 DEF、USE、vertexCount、containerField 及 class 等域。 VertexCount 域:指定了线的顶点数,该节点描述了每条折线中使用 Coordinate 域中的点 的坐标。通过获取的 vertexCount[n],Coordinate 中的顶点被分配到每段线上。 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 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.8. LineProperties 节点. LineProperties(线填充物)节点用于定义 2D 图形的线型填充,对各种不同的平面几何(2D 图形)节点进行设计。LineProperties(线填充物)节点定义二维图形的线型,是一个平面几何 (2D 图形)线型填充节点,位于 Shape(模型)节点下的 LineProperties(线填充物)子节点。 LineProperties(线填充物)节点是 X3D 平面几何(2D 图形)线型填充节点,一般作为 Shape 56.

(20) 第3章 X3D 几何 2D 节点设计. 节点中子节点,用于线型填充 2D 图形。利用 Shape 节点中 Appearance(外观)节点和 Material (材料)子节点描述 2D 平面几何造型节点的纹理材质、颜色、发光效果、明暗、光的反射及 透明度等,提高开发与设计的效果。 1.LineProperties(线填充物)节点语法定义 LineProperties(线填充物)节点定义二维图形的线型填充,是一个平面几何(2D 图形) 填充节点,位于 Shape(模型)节点下的 LineProperties(线填充物)子节点,与 Appearance (外观)节点是同一级子节点。 LineProperties(线填充物)节点语法定义了一组二维图形的线型的属性或域,利用 LineProperties(线填充物)节点的域名、域值、域的数据类型,以及事件的存储/访问权限的 定义来创建一个效果更加理想的 2D 图形填充线型。利用 LineProperties(线填充物)节点中的 applied、linetype、linewidthScaleFactor 等参数设置创建 X3D 二维立体平面几何线型。 LineProperties(线填充物)节点语法定义如下: LineProperties(线填充物)节点 { 域名 域值 DEF ID USE IDREF applied true linetype 0 linewidthScaleFactor 0.0 containerField lineProperties class }. 域数据类型. 存储/访问类型. SFBool SFInt32 SFFloat. inputOutput inputOutput inputOutput. 2.LineProperties(线填充物)节点数据描述 LineProperties(线填充物)节点包含域名、域值、域数据类型及存储/访问类型等,节点 中数据内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFInt32 域, 是一个单值含有 32 位的整数;②SFBool 域,是一个单值布尔量,取值为 true 或 false;③SFFloat 域:是一个单值单精度浮点数。事件的存储/访问类型描述:表示域(属性)的存储/访问类型, 包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)及 inputOutput (输入/输出类型)等,用来描述该节点必须提供该属性值。 3.LineProperties(线填充物)节点详解 LineProperties(线填充物)节点包含 DEF、USE、applied、linetype、linewidthScaleFactor、 containerField 及 class 等域。 applied 域:指定一个使用标志,是否与几何体一同应用。如果值为 true 表示使用,如果 值为 false 表示不应用。 linetype 域:指定一个线的类型,可以设置线的各种不同的线型。 linewidthScaleFactor 域:表示一个线的宽度系数,用来设置线的宽度。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 lineProperties,包含几何造型节点。如 geometry Box、children Group、proxy Shape。 containerField 属性只有在 X3D 场景用 XML 编码时才使用。 class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML. 57.

(21) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 编码时才支持 class 属性。 DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。 USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.9. Polypoint2D 节点. Polypoint2D(点)节点是使用点来构造空间 2D 几何造型。由一系列的二维坐标点组成一 个二维几何图形。Polypoint2D(点)节点是一个几何造型节点,它指定了一系列的二维坐标 点。Shape(模型)节点可以包含 Appearance 子节点和 Geometry 子节点,Polypoint2D(点) 节点作为 Shape(模型)节点下 Geometry(几何造型)节点域中的一个子节点。而 Appearance (外观)节点和 Material 外观材料节点用于描述 Polypoint2D(点)节点的纹理材质、颜色、 发光效果、明暗、光的反射及透明度等。 1.Polypoint2D(点)节点语法定义 Polypoint2D(点)节点语法定义了一组二维图形的多点的属性或域,利用 Polypoint2D (点)节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来创建一个效果更 加理想的多点 2D 图形。利用 Polypoint2D(点)节点中的 point 等参数设置创建 X3D 二维平 面几何造型。 Polypoint2D(点)节点语法定义如下: Polypoint2D(点)节点 {. 域名 DEF USE point containerField class. 域值 ID IDREF [] geometry. 域数据类型. 存储/访问类型. MFVec2f. initializeOnly. }. 2.Polypoint2D(点)节点数据描述 Polypoint2D(点)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内 容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述 MFVec2f 域:是一个包含 任意数量的二维矢量的多值域。事件的存储/访问类型描述:表示域(属性)的存储/访问类型, 包括 inputOnly (输入类型) 、outputOnly (输出类型) 、initializeOnly (初始化类型)以及 inputOutput (输入/输出类型)等,用来描述该节点必须提供该属性值。 3.Polypoint2D(点)节点详解 Polypoint2D(点)节点包含 DEF、USE、point、containerField 及 class 等域。 point 域:指定了一系列的 2D 坐标点,由许多二维坐标点组成一个 2D 几何图形。定义了 每个顶点的二维坐标,初始值为空,取值范围为(-∞,∞) 。其中几何尺寸一旦初始化后就不 58.

(22) 第3章 X3D 几何 2D 节点设计. 可以再更改,可以使用 Transform 缩放尺寸。 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 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.10. Polyline2D 节点. Polyline2D(线)节点使用端点来构造空间 2D 几何线段造型。由一系列的二维坐标点组 成一个二维几何线段图形。Polyline2D(线)节点是一个 2D 平面几何造型节点。Shape(模型) 节点可以包含 Appearance 子节点和 Geometry 子节点,Polyline2D(线)节点作为 Shape(模 型)节点下 Geometry(几何造型)节点域中的一个子节点。而 Appearance(外观)节点和 Material (外观材料)节点用于描述 Polyline2D(线)节点的纹理材质、颜色、发光效果、明暗、光的 反射及透明度等。 1.Polyline2D(线)节点语法定义 Polyline2D(线)节点是一个几何造型节点,它指定了一系列的二维坐标端点,由多个二 维坐标端点连接成一个 2D 几何线段图形。Polyline2D(线)节点作为 Shape(模型)节点下 Geometry(几何)造型节点域中的一个子节点。 Polyline2D(线)节点语法定义了一组二维图形的多点的属性或域,利用 Polyline2D(线) 节点的域名、域值、域的数据类型及事件的存储/访问权限的定义来创建一个效果更加理想的 2D 几何线段图形。利用 Polyline2D(线)节点中的 lineSegments(多个端点)等参数创建 X3D 二维平面几何线段造型。 Polyline2D(线)节点语法定义如下: Polyline2D(线)节点 { 域名 DEF USE lineSegments containerField class }. 域值 ID IDREF [] geometry. 域数据类型. 存储/访问类型. MFVec2f. initializeOnly. 2.Polyline2D(线)节点数据描述 Polyline2D(线)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内容 59.

(23) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. (架构)包含在一对花括号中,用“{}”表示。域数据类型描述 MFVec2f 域:是一个包含任 意数量的二维矢量的多值域。事件的存储/访问类型描述:表示域(属性)的存储/访问类型, 包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)以及 inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。 3.Polyline2D(线)节点详解 Polyline2D(线)节点包含 DEF、USE、lineSegments、containerField 及 class 等域。 lineSegments 域:指定了一系列线段的 2D 坐标点,用以连接 Polyline2D 的每个顶点的坐 标,由多个二维坐标端点组成一个 2D 几何线段图形。定义了每个端点的二维坐标,制定了要 连接的指定点,初始值为空,取值范围为(-∞,∞) 。在设计和开发的过程中,几何尺寸一旦 初始化后就不可以再更改,可以使用 Transform 缩放尺寸。 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 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.11. TriangleSet2D 节点. 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(三角形)节点语法定义如下: 60.

(24) 第3章 X3D 几何 2D 节点设计. TriangleSet2D(三角形)节点 { 域名 域值 DEF ID USE IDREF vertices [] solid true containerField geometry class }. 域数据类型. 存储/访问类型. MFVec2f SFBool. initializeOnly initializeOnly. 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(外观材料)子节点描述 空间物体造型的颜色、材料漫反射、环境光反射、物体镜面反射、物体发光颜色、外观材料的. 61.

(25) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 亮度及透明度等,使二维空间场景和造型更具真实感。 【例 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 field SFBool solid exposedField SFNode metadata ][ "Geometry2dComponentPrototypes.wrl#TriangleSet2D" ] Background { groundColor [ 0.98 0.98 0.98 ] skyColor [ 0.98 0.98 0.98 ] } Viewpoint { description "Geometry2D Component Examples" position 0 0 12 } Transform { translation 0 0 0 children [ Shape { geometry TriangleSet2D { vertices [ 0 0, 1 2, -1 1, 0 0, 1 -1, 0.5 -2, 0 0, -1 -2, -2 -1 ] solid TRUE } appearance Appearance { material Material { diffuseColor 0 1 0 } } } ] }. 在 X3D 源文件中的 Scene(场景)根节点下添加 Background(背景)节点和 Shape(模型) 节点,背景节点的颜色取银白色以突出二维立体几何造型的显示效果。在 Shape(模型)节点 下增加 Appearance(外观)节点和 Material(外观材料)节点,对物体造型的外观颜色,物体 发光颜色,外观材料的亮度及透明度进行设计,以提高空间 2D 几何 TriangleSet2D(三角形) 节点的显示效果。在几何造型节点中创建 TriangleSet2D(三角形)节点,根据设计需求设置. 62.

(26) 第3章 X3D 几何 2D 节点设计. 三角形相应的点以显示三角,改变三角形点的位置来改变三角形的形状、大小和尺寸。 运行 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。. 3.12. Contour2D 节点. Contour2D 节点描述了一个 2D 空间平面曲线段几何图形。根据 Contour2D 节点下的子节 点 NurbsCurve2D 或 ContourPolyline2D,按照围线的拓扑顺序连续地列出,形成一个二维几何 平面曲线段图形。Contour2D 节点可以作为 Shape 节点中 Geometry(几何造型)子节点。 1.Contour2D 节点语法定义 Contour2D 节点使用一系列的曲线段组成一个复合周线,在 Children segment 中用后一个 子节点的第一个点重复作为前一个子节点的最后一个点以封闭线; 每段的最后一个点作为下一 段的起始点以使围线连续,Children segments 的类型是 NurbsCurve2D 或 ContourPolyline2D, 按照围线的拓扑顺序连续地列出。 Contour2D 节点语法定义了平面曲线段的属性或域,利用 Contour2D 节点的域名、域值、 域的数据类型及事件的存储访问权限的定义来创建一个效果更加理想的一系列平面曲线造型。 利用 Contour2D 节点中的 NurbsCurve2D 或 ContourPolyline2D 子节点创建 X3D 文件中的一系 列二维平面曲线造型。. 63.

(27) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. Contour2D 节点语法定义如下: Contour2D 节点 { 域名 DEF USE containerField *NurbsCurve2D *ContourPolyline2D class }. 域值 域数据类型 存储/访问类型 ID IDREF trimmingContour NULL SFNode 子节点 NULL SFNode 子节点. 2.Contour2D 节点数据描述 Contour2D 节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内容(架 构)包含在一对花括号中,用“{}”表示。域数据类型描述:①SFBool 域,是一个单值布尔 量,取值为 true 或 false;②SFNode 域,是单值节点。事件的存储/访问类型描述:表示域(属 性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初 始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。 2.Contour2D 节点详解 Contour2D 节点包含 DEF、USE、containerField 以及 class 等域。其中“*”表示子节点。 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 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.13. ContourPolyline2D 节点. ContourPolyline2D 节点在曲面 u-v 域定义了一个曲线作为裁剪环的一部分。该节点作为 Contour2D 节点的一个子节点。Contour2D 节点可以作为 Shape 模型节点下 Geometry 子节点下 的一个子节点,创建在曲面 u-v 域定义的一个二维曲线造型,使用 Appearance(外观)子节点 和 Material(外观材料)子节点描述空间物体造型的颜色、材料漫反射、环境光反射、物体镜 面反射、物体发光颜色、外观材料的亮度及透明度等,使二维立体空间场景和造型更具真实感。 1.ContourPolyline2D 节点语法定义 ContourPolyline2D 节点在曲面 u-v 域定义了一个二维曲线。ContourPolyline2D 节点语法定 义了二维平面曲线的属性或域,利用 ContourPolyline2D 节点的域名、域值、域的数据类型,. 64.

(28) 第3章 X3D 几何 2D 节点设计. 以及事件的存储/访问权限的定义来创建一个效果更加理想的平面曲线造型。利用 Contour2D 节点中的 NurbsCurve2D 子节点或 ContourPolyline2D 子节点创建 X3D 文件中的一个二维平面 曲线造型。 ContourPolyline2D 节点语法定义如下: ContourPolyline2D 节点 { 域名 域值 DEF ID USE IDREF point [] containerField children class. 域数据类型. 存储/访问类型. MFVec2f. }. 2.ContourPolyline2D 节点数据描述 Contour2D 节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据内容(架 构)包含在一对花括号中,用“{}”表示。域数据类型描述:①MFVec2f 域,是一个包含任意 数量的二维矢量的多值域;②SFNode 域,是单值节点。事件的存储/访问类型描述:表示域(属 性)的存储/访问类型,包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初 始化类型)及 inputOutput(输入/输出类型)等,用来描述该节点必须提供该属性值。 3.ContourPolyline2D 节点详解 ContourPolyline2D 节点包含 DEF、USE、point、containerField 及 class 等域。 point 域:指定了一系列的 2D 坐标点,由许多二维坐标点组成一个 2D 几何曲线图形。定 义了每个点的二维坐标,初始值为空,取值范围为(-∞,∞) 。其中几何尺寸一旦初始化后就 不可以再更改,可以使用 Transform 缩放尺寸。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 children,包含几何造型节点,如 geometry Box、children Group、proxy Shape。 containerField 属性只有在 X3D 场景用 XML 编码时才使用。 class 域:是用空格分开的类的列表,保留给 XML 样式表使用。只有在 X3D 场景用 XML 编码时才支持 class 属性。 DEF 为节点定义一个名字,给该节点定义了唯一的 ID,在其他节点中就可以引用这个节 点。用 DEF 为节点命名时,使用有意义的描述性的名称可以规范文件,以提高 X3D 文件可读 性,该属性是可选项。 USE 用来引用 DEF 定义的节点 ID,即引用 DEF 定义的节点名字,同时忽略其他的属性 和子对象。使用 USE 来引用其他的节点对象而不是复制节点,可以提高软件性能和编码效率。 该属性是可选项。. 3.14. TriangleSet 节点. 1.TriangleSet(三角形)节点语法定义 TriangleSet(三角形)节点是一个几何造型节点,可以作为 Shape(模型)节点下 Geometry. 65.

(29) 三维立体网页设计 —虚拟现实立体动画游戏程序设计. 节点域中的一个子节点。该节点又可以包含 Color、Coordinate、Normal、TextureCoordinate 子 节点。可以在增加 Geometry 或 Appearance 节点之前先插入一个 Shape 节点。在浏览器处理此 场景内容时,可以用符合类型定义的原型 ProtoInstance 来替代。 TriangleSet(三角形)节点语法定义了一组用于确定三角形节点的属性或域,利用 TriangleSet(三角形)节点的域名、域值、域的数据类型以及事件的存储/访问权限的定义来创 建一个效果更加理想的三角形节点造型。 利用 TriangleSet (三角形)节点中的 ccw、colorPerVertex 及 normalPerVertex 提供的各种域值创建 X3D 文件中的三角形造型。 TriangleSet(三角形)节点语法定义如下: TriangleSet(三角形)节点 { 域名 域值 DEF ID USE IDREF ccw true colorPerVertex true normalPerVertex true solid true containerField geometry class }. 域数据类型. 存储/访问类型. SFBool SFBool SFBool SFBool. initializeOnly initializeOnly initializeOnly initializeOnly. 2.TriangleSet(三角形)节点数据描述 TriangleSet(三角形)节点包含域名、域值、域数据类型及存储/访问类型等,节点中数据 内容(架构)包含在一对花括号中,用“{}”表示。域数据类型描述 SFBool 域:是一个单值 布尔量,取值为 true 或 false。事件的存储/访问类型描述:表示域(属性)的存储/访问类型, 包括 inputOnly(输入类型)、outputOnly(输出类型)、initializeOnly(初始化类型)及 inputOutput (输入/输出类型)等,用来描述该节点必须提供该属性值。 3.TriangleSet(三角形)节点详解 TriangleSet(三角形)节点包含 DEF、USE、ccw、colorPerVertex、normalPerVertex、solid、 containerField 以及 class 等域。 ccw 域:指定三角面是按顺时针方向索引,还是逆时针方向索引。当该域值为 true 指定为 逆时针,按顶点坐标方位的顺序;当 ccw 域值为 false 时可以翻转 solid(背面裁切)及法线方 向,默认值为 true。 colorPerVertex 域:指定了每个顶点的颜色。当该域值为 true 时,Color 节点被应用于每个 顶点上;该域值为 false 时,Color 节点被应用于每个多边形上,默认值为 true。 normalPerVertex 域:指定了每个顶点的法线。Normal 节点被应用于每个顶点上,该域值 为 true;应用于每个多边形上,该域值为 false,默认值为 true。 solid 域:定义了一个三角形造型表面和背面绘制的布尔量,当该域值为 true 时,表示只 构建三角形对象的表面,不构建背面;当该域值为 false 时,表示三角形对象的正面和背面均 构建。该域值的取值为 true 或 false,默认值为 true。 containerField 域:表示容器域是 field 域标签的前缀,表示子节点和父节点的关系。该容 器域名称为 geometry,包含几何造型节点,如 geometry Box、children Group、proxy Shape。 containerField 属性只有在 X3D 场景用 XML 编码时才使用。 66.

參考文獻

相關文件

摘 摘要 要 要: 我們從餘弦定律與直角三角形出發, 同時以兩種方向進行: 首先, 試以畢氏數製造 機之原理做出擬畢氏數製造機, 並定義基本擬畢氏數, 接著延伸出相關定理; 另外, 透過

以下簡單介紹魔術三角形: 如圖 1, 若三角形每邊有 三個數且數字和都是定值, 稱為 3 階 (傳統) 魔術三角形; 如圖 2, 若每邊有三 個數且較大兩數和減最小數的差都是定值, 稱為

(即直角三角形斜邊中點為此三角形的外心。)

[r]

[r]

其交線垂直於軸三角形的底邊。進而,如果截痕的直徑平行於軸三角形的一邊,那麼任一

定理: : : :2.1-2 全等三角形對 全等三角形對應角的對邊相等 全等三角形對 全等三角形對 應角的對邊相等 應角的對邊相等 ... S.三角形全等定理 三角形全等定理 三角形全等定理

△ABC 為上底面、△DEF 為下底面,且上底面△ABC 與下底面△DEF 互相平行、△ABC △DEF;矩形 ADEB、矩形 BEFC 與 矩形 CFDA 皆為此三角柱的側面,且均同時與△ABC、△DEF