NOFF (.noff,.cnoff)

予備知識

    • NOFF3次元形状形式.
    • 3次元模型を保持したり,交換したりするのに使われる.
    • NOFFはObject File Formatからの頭字語である.
    • OFFとCOFFに関連している.
    • 色情報が存在する場合には,CNOFFと呼ばれることもある.
    • ASCIIあるいはバイナリ形式.
    • 単一の2次元あるいは3次元のオブジェクトを表す.
    • 平面多角形のコレクションを共有される可能性がある頂点と頂点法線のデータと一緒に保持する.

ImportとExport

  • Import["file.off"]はNOFFファイルをグラフィックスとしてインポートする.
  • Export["file.off",expr]はグラフィックスをバイナリのNOFFファイルにエキスポートする.
  • 3次元オブジェクトを表す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要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "Graphics"Graphicsオブジェクトとして表示される2次元NOFFファイル
    "Graphics3D"Graphics3D オブジェクトとして表示される3次元形状
    "GraphicsComplex"GraphicsComplexオブジェクトとしてのNOFFファイル
    "PolygonColors"それぞれの多角形に関連するカラープリミティブのリストとして与えられる面の色情報
    "PolygonData"インデックス付きの形での多角形要素
    "PolygonObjects"絶対座標で与えられるPolygonプリミティブのリスト
    "VertexColors"それぞれの頂点に関連する色(カラープリミティブのリストとして与えられる)
    "VertexData"頂点座標のリスト
    "VertexNormals""VertexData"で与えられる頂点に対応している正規ベクトル
  • ImportExportはデフォルトで"Graphics3D" 要素を使って3次元形状を,"Graphics"要素を使って2次元オブジェクトを表す.
  • "VertexData"要素はGraphicsComplexの第1引数に対応する.

オプション

  • 一般的なImportオプション:
  • BackgroundAutomaticどの背景色を使うか
    ImageSizeAutomatic表示するグラフィックスの全体的な大きさ
    LightingAutomatic3次元の表面を色付けするのにどの疑似照明を使うか
  • Graphics3DのすべてのオプションはNOFFからインポートする際に返すことができる.
  • 詳細特性:
  • "BinaryFormat"TrueファイルがASCIIあるいはバイナリ形式であるかどうか
  • バイナリのNOFFファイルは常に設定 "ByteOrdering"->1を使って,情報を"Integer32""Real32"のデータタイプとして保持する.
  • 詳細なオプション:
  • "InvertNormals"False頂点法線の方向を逆にするかどうか
    "VerticalAxis"{0,0,1}ファイル内で使用される座標系に想定される方向
  • デフォルトではWolfram言語は,NOFF形式で使用された座標系で,垂直軸が第3座標に対応するものと想定する.
  • 設定"VerticalAxis"->{0,1,0}で,Wolfram言語は,NOFFからインポートする際には変換 {x,y,z}->{x,-z,y}を,NOFFにエキスポートする際には逆変換を,すべてのグラフィックス座標に適用する.

例題

  (3)

"Stanford bunny"をNOFFの3次元模型からインポートする:

このファイルに保持される多角形をインポートして数える:

SphericalPlot3Dを使って3次元オブジェクトを生成し,それをNOFFにエキスポートする:

インライン3Dグラフィックスを使ったExportの例題: