Extensible 3D (X3D)
Part 1: Architecture and base components
14 Geometry2D component
二维几何体组件
这部分组件的名称是“Geometry2D”。当在 COMPONENT 语句中引用这个组件时需要使用这个名称(参见 7.2.3.4 Component 语句)。
本条款描述了 ISO/IEC 19775 标准这部分中的 Geometry2D component(二维几何体组件)。其中包括指定的二维几何体及其可见的形状。表 14.1 列出了这一条款的主要主题。
geometry2D 组件只由几何节点组成,因为只和 Shape 组件中定义的形,几何属性,外观节点一同使用。geometry2D 节点可以被认为是平面化的对象。
所有的 2D 坐标系中的 2D 节点被定义在当前 3D 坐标系中的一个 z=0 的平面上, 2D 坐标系的 x 轴和 y 轴和当前的 3D 坐标系一致。这个 2D 坐标系的原点定义为 3D 坐标系的原点。未指定的 2D 坐标的 z 分量值总被定义为 0。2D 节点的位置和方向受所有的 2D 变换或 3D 变换的影响。
2D 节点中的每个面都在定义其的 z=0 的坐标系中共面。面分向前的面和向后的面。向前的面定义为 z=0 平面的正面。面也象此标准中定义的 3D 几何体那样在渲染时做剔除。
在正对边的方向上看,2D 节点将会消失,因为它们是没有厚度的。
Shape 节点在 12 形组件 Shape component 中定义。
许多几何节点都包含了作为几何属性节点的 Coordinate、Color、Normal、TextureCoordinate 节点。这些节点在 11 渲染组件 Rendering component 中定义。
Shape 节点可以指定一个 Appearance 节点用以描述应用到 Shape 节点中的几何体上的外观属性(材质和纹理)。Appearance 在 12 形组件 Shape component 中定义。
外观属性和几何节点之间相互作用的信息细节描述见 12 Shape component。
Arc2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] SFFloat [] endAngle π/2 [-2π,2π] SFFloat [] radius 1 (0,∞) SFFloat [] startAngle 0 [-2π,2π] }
Arc(弧)指定一个线形圆弧,其圆心位于 (0,0) 并按角度由正 x 轴开始并向正 y 轴扫出。radius 域指定了弧所在的圆的半径。圆弧从 startAngle 开始逆时针扩展到 endAngle。radius 值应大于 0。startAngle 和 endAngle 的值应在 (0, 2π) 范围中。如果 startAngle 和 endAngle 值相同,则指定为一个圆。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
附图 14.1 描述了一个 Arc2D 节点。
ArcClose2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] SFString [] closureType "PIE" ["PIE"|"CHORD"] SFFloat [] endAngle π/2 [-2π,2π] SFFloat [] radius 1 (0,∞) SFBool [] solid FALSE SFFloat [] startAngle 0 [-2π,2π] }
ArcClose(闭合弧)节点指定了圆的一部分,其圆心位于 (0,0) 并按角度由正 x 轴开始并向正 y 轴扫出,其端点按 closureType 域中指定的方式连接起来。radius 域指定了弧所在的圆的半径。圆弧从 startAngle 开始逆时针扩展到 endAngle。radius 值应大于 0。startAngle 和 endAngle 的值应在 (0, 2π) 范围中。如果 startAngle 和 endAngle 值相同,则指定为一个圆并忽略 closureType (闭合类型)域。
闭合类型为 "PIE" 值时,将定义两条直线段来连接终点和起点,先是终点连接到圆心,接着是圆心连接到起点。这将形成一个 附图 14.2 中表示的楔形饼图。
闭合类型为 "CHORD" 值时,将定义一条从终点到起点的直线段以连接终点和起点。这将形成一个 附图 14.3 中表示的弓形部分。
纹理将被独立地应用到 ArcClose2D 的每个面上。当从 +Z 方向观看时,在 ArcClose2D 的向前 (+Z) 的面和向后 (-Z) 的面上,图像将被按其通常在 2D 中显示的方向在每个面上贴图。TextureTransform 能影响 ArcClose2D 的纹理坐标(见 18.4.9 TextureTransform)。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
Circle2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] SFFloat [] radius 1 (0,∞) }
Circle2D(圆)节点指定了一个圆心位于局部坐标系 (0,0) 的圆。radius 域指定了 Circle2D 的半径。radius 的值应大于 0。附图 14.4 举例说明了一个应用了虚线线型的 Circle2D 节点。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
Disk2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] SFFloat [] innerRadius 0 [0,∞) SFFloat [] outerRadius 1 (0,∞) SFBool [] solid FALSE }
Disk2D(圆盘)节点指定了一个圆心位于局部坐标系 (0,0) 的圆盘。outerRadius 域 Disk2D 的外半径。innerRadius 域指定了 Disk2D 的内半径。outerRadius 的值应大于 0。innerRadius 的值应大于或等于 0 且小于或等于 outerRadius。如果 innerRadius 为 0,Disk2D 将被完全填充。否则 innerRadius 里面的区域将形成一个 Disk2D 上的洞。如果 innerRadius 等于 outerRadius,将使用当前的线属性绘制一个圆。附图 14.5 举例说明了一个包含非 0 innerRadius 值的 Disk2D 节点。
纹理将被独立地应用到 Disk2D 的每个面上。当从 +Z 方向观看时,在 ArcClose2D 的向前 (+Z) 的面和向后 (-Z) 的面上,图像将被按其通常在 2D 中显示的方向在每个面上贴图。TextureTransform 能影响 Disk2D 的纹理坐标(见 18.4.9 TextureTransform)。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
Polyline2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] MFVec2f [] lineSegments [] (-∞,∞) }
Polyline2D(折线)节点在局部 2D 坐标系中指定了一系列的连续的线段。lineSegments 域指定了将被连接的顶点。附图 14.6 举例说明了 Polyline2D 节点。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
Polypoint2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] MFVec2f [in,out] point [] (-∞,∞) }
Polypoint2D 节点在局部 2D 坐标系中指定了一系列的顶点,这些顶点将显示为点。points 域指定了将显示的点。附图 14.7 举例说明了 Polypoint2D 节点。把这些点扩充为线的结果的图解就是 附图 14.6 。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
Rectangle2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] SFVec2f [] size 2 2 (0,∞) SFBool [] solid FALSE }
Rectangle2D 节点指定了一个中心位于当前局部 2D 坐标系 (0, 0) 且于此当前局部 2D 坐标系轴对其的矩形。缺省时为每个方向上 都为 -1 到 1 的 2 个单位长度的矩形。size 域指定了沿 X 轴和 Y 轴进行延伸的长度的对应分量,每个分量的值都应大于 0。附图 14.8 举例说明了一个附带 FillProperties 定义的阴影线样式的 Rectangle2D 节点。
纹理将被独立地应用到 Rectangle2D 的每个面上。当从 +Z 方向观看时,在 ArcClose2D 的向前 (+Z) 的面和向后 (-Z) 的面上,图像将被按其通常在 2D 中显示的方向在每个面上贴图。TextureTransform 能影响 Rectangle2D 的纹理坐标(见 18.4.9 TextureTransform)。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
TriangleSet2D : X3DGeometryNode { SFNode [in,out] metadata NULL [X3DMetadataObject] MFVec2f [in,out] vertices [] (-∞,∞) SFBool [] solid FALSE }
TriangleSet2D 节点在局部 2D 坐标系中指定了一系列三角形。vertices(顶点)域中指定了将要显示的三角形。提供的顶点数量应为可被三均分。多余的顶点将被忽略。附图 14.9 举例说明了 TriangleSet2D 节点。
solid 域的完整描述见 11.2.3 一般几何域 Common geometry fields。
纹理将被独立地应用到 TriangleSet2D 的每个面上。当从 +Z 方向观看时,在 ArcClose2D 的向前 (+Z) 的面和向后 (-Z) 的面上,图像将被按其通常在 2D 中显示的方向在每个面上贴图。TextureTransform 能影响 TriangleSet2D 的纹理坐标(见 18.4.9 TextureTransform)。
级别 Level |
必备条件 | 节点/特性 | 支持 |
---|---|---|---|
1 | Core 1 Grouping 1 Shape 1 Rendering 1 |
||
Polyline2D | 所有域的完全支持 | ||
Polypoint2D | 所有域的完全支持 | ||
Rectangle2D | 所有域的完全支持 | ||
TriangleSet2D | 所有域的完全支持 | ||
2 | Core 1 Grouping 1 Shape 1 Rendering 1 |
||
Level 1 的所有 Geometry2D 节点 | 所有域的完全支持 | ||
Arc2D | 所有域的完全支持 | ||
ArcClose2D | 所有域的完全支持 | ||
Circle2D | 所有域的完全支持 | ||
Disk2D | 所有域的完全支持 |