NOFF (.noff, .cnoff)

背景

    • NOFF 三维几何格式.
    • 用于存储和交换三维模型.
    • NOFF 是 Object File Format(对象文件格式)的缩写.
    • 与 OFF 和 COFF 相关.
    • 如果有色彩信息时,有时被称为 CNOFF.
    • ASCII 或二进制格式.
    • 表示一单个二维或三维对象.
    • 存储带有可能共享的顶点和顶点法线数据的平面多边形集合.

Import 与 Export

  • Import["file.off"] 把一个 NOFF 文件导入为图形.
  • Export["file.off",expr] 把图形导出为一个二进制 NOFF 文件.
  • 对于一个表示三维对象的 NOFF 文件,Import["file.off"] 返回形式为 Graphics3D[ GraphicsComplex[vertices,primitives,opts]] 的表达式.
  • 平面对象被导入为 Graphics[ GraphicsComplex[vertices,primitives,opts].
  • Import["file.off",elem] 从 NOFF 文件导入指定的参数.
  • Import["file.off",{elem,suba,subb,}] 导入一个子参数.
  • Import["file.off",{{elem1,elem2,}}] 导入多个参数.
  • 导入格式可以用 Import["file","NOFF"]Import["file",{"NOFF",elem,}] 指定.
  • Export["file.off",expr,elem] 通过把 expr 作为指定参数 elem 创建一个 二进制 NOFF 文件.
  • Export["file.off",{expr1,expr2,},{{elem1,elem2,}}] 把每一个 expri 指定为相应的 elemi.
  • Export["file.off",expr,opt1->val1,] 导出具有指定值的指定选项参数的 expr.
  • Export["file.off",{elem1->expr1,elem2->expr2,},"Rules"] 使用规则指定要导出的参数.
  • 请到以下参考页面了解完整的基本信息:
  • Import, Export从文件导入或导出到文件
    CloudImport, CloudExport从云对象导入或导出到云对象
    ImportString, ExportString从字符串导入或导出到字符串
    ImportByteArray, ExportByteArray从字节数组导入或导出到字节数组

导入参数

  • Import 的通用参数:
  • "Elements" 该文件可用的参数和选项列表
    "Summary"文件摘要
    "Rules"所有可用参数的规则列表
  • 表示数据的参数:
  • "Graphics"二维 NOFF 文件,表示为一个 Graphics 对象
    "Graphics3D"三维几何形状,表示为一个 Graphics3D 对象
    "GraphicsComplex"GraphicsComplex 对象表示的 NOFF 文件
    "PolygonColors"表面颜色信息,以与每个多边形相关的颜色基元列表表示
    "PolygonData"索引形式的多边形参数
    "PolygonObjects"以绝对坐标表示的 Polygon 基元列表
    "VertexColors"与每个顶点相关的颜色,以颜色基元的列表表示
    "VertexData"顶点坐标的列表
    "VertexNormals"对应于由 "VertexData" 给定的顶点的法向量
  • 默认情况下,ImportExport 使用 "Graphics3D" 参数表示三维几何,"Graphics" 参数表示二维对象.
  • "VertexData" 参数对应于 GraphicsComplex 的第一个自变量.

选项

  • Import 通用选项:
  • BackgroundAutomatic使用何种背景颜色
    ImageSizeAutomatic要显示图形的整体大小
    LightingAutomatic在三维彩色表面使用何种模拟光源
  • 当从 NOFF 导入时,可以使用 Graphics3D 的所有选项.
  • 详细属性:
  • "BinaryFormat"True文件是否为 ASCII 或二进制格式
  • 二进制 NOFF 文件存储信息为 "Integer32" "Real32" 数据类型,总是使用设置 "ByteOrdering"->1.
  • 高级选项:
  • "InvertNormals"False是否逆转顶点法线的方向
    "VerticalAxis"{0,0,1}假设文件中使用的坐标系统的方向
  • 默认情况下,Wolfram 语言假设由 NOFF 格式使用的坐标系统是:垂直轴对应于第三个坐标.
  • 当设置为 "VerticalAxis"->{0,1,0},从 NOFF 导入时,Wolfram 语言会对所有图形坐标应用变换{x,y,z}->{x,-z,y},当导出到 NOFF 时,使用逆变换.

范例

基本范例  (3)

从一个 NOFF 三维模型中导入斯坦福兔子

导入和计算存储在文件中的多边形:

使用 SphericalPlot3D 创建一个三维对象并导出至 NOFF:

使用内嵌三维图形的 Export 范例: