X3D (.x3d)

背景

    • MIME 类型:model/x3d+xml
    • Web3D 几何格式.
    • 用于在网络和媒体应用程序中分发三维模型.
    • XML 格式.
    • 可存储多个几何图形.
    • 于 2003 年引入,由 Web3D 联盟维护.
    • VRML 格式的继承者.

Import 与 Export

Import 参数

  • Import 通用参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 数据格式表示的参数:
  • "LineData"被表示为索引列表的线,引用由 "VertexData" 参数给定的顶点
    "PointData"索引形式的点数据
    "PolygonData"索引形式表示的多边形数据
    "VertexData"顶点坐标列表
    "VertexNormals"对应于由 "VertexData" 给定的顶点的法向量
  • 几何表示的参数:
  • "BoundaryMeshRegion"表示一个实体的边界网格
    "MeshRegion"表示一个表面的网格
    "Region"表示一个表面的区域
  • 图形表示的参数:
  • "Graphics3D"表示为 Graphics3D 对象的 X3D 文件
    "GraphicsComplex"表示为 GraphicsComplex 对象的 X3D 文件
    "LineObjects"以绝对坐标表示的 Line 图元列表
    "PointObjects"以绝对坐标表示的 Point 图元列表
    "PolygonObjects"以绝对坐标表示的多边形图元列表
  • 默认情况下,ImportExport 对 X3D 文件使用 "MeshRegion" 参数.

选项

  • 高级选项:
  • "InvertNormals"False是否逆向顶点法线方向
    "VerticalAxis"{0,0,1}假设文件中使用的坐标系统的方向
  • 默认情况下,Wolfram 语言假设由 X3D 格式使用的坐标系统是:垂直轴对应于第三个坐标.
  • 当设置为 "VerticalAxis"->{0,1,0},当导出至 X3D 时,Wolfram 语言会对所有图形坐标应用变换{x,y,z}->{x,z,-y}.

范例

打开所有单元关闭所有单元

基本范例  (3)

从 X3D 文件中将三维模型作为 MeshRegion 对象导入:

模型属性的 "Summary"

将三维模型导出至 ASCII X3D 文件:

打印文件的原始文本内容:

导出三维模型:

范围  (8)

Import  (4)

Import 用于 X3D 文件:

任意可访问的 URL:

数据流:

Import 在 X3D 文件中提供对参数的访问:

Export  (4)

Export 用于三维图形:

特殊区域:

公式区域:

网格区域:

导入参数  (13)

"BoundaryMeshRegion"  (1)

给出一个 BoundaryMeshRegion

"Graphics3D"  (1)

给出 Graphics3D 对象:

"GraphicsComplex"  (1)

给出 GraphicsComplex 对象:

"MeshRegion"  (1)

给出一个 MeshRegion

"LineData"  (1)

给出 "LineData" 对象:

"LineObjects"  (1)

给出 "LineObjects" 对象:

"PointData"  (1)

给出 "PointData" 对象:

"PointObjects"  (1)

给出 "PointObjects" 对象:

"PolygonData"  (1)

以索引形式给出多边形参数:

"PolygonObjects"  (1)

给出以绝对坐标给出的 Polygon 基元列表:

"Region"  (1)

给出一个 Region:

"Summary"  (1)

给出属性的 "Summary"

文件大小:

"VertexData"  (1)

给出顶点坐标:

导出选项  (2)

InterpretationBox[Cell["\t", "ExampleDelimiter", ExpressionUUID -> "76d36008-4501-4fe6-83f1-4134d3fd9253"], $Line = 0; Null]  (1)

反转法线:

InterpretationBox[Cell["\t", "ExampleDelimiter", ExpressionUUID -> "54d2bb88-0b6a-472d-a82f-dbedfc9c730b"], $Line = 0; Null]  (1)

设置垂直轴: