多数のプリミティブの効率的表現
| Point[{pt1,pt2,...}] | , , ...の点からなるマルチポイント |
| Line[{line1,line2,...}] | , , ...からなるマルチライン |
| Polygon[{poly1,poly2,...}] | 多角形 , , ...からなるマルチポリゴン |
複数の要素を取ることのできるプリミティブ
プリミティブの中には,複数要素の形式を持つものもあり,これだと単独のプリミティブよりも速くMathematica フロントエンドで処理・描画することができる.多数のプリミティブの場合,複数要素形式を使うことでノートブックファイルのサイズを大きく減少させることもできる.複数要素形式を使うノートブックは使っていない場合よりもサイズが半分以下となり,描画時間も10倍速くなることがある.
| Out[1]= |  |
| GraphicsComplex[{pt1,pt2,...},data] | data のグラフィックスプリミティブで整数 i として与えられる座標が とされるグラフィックスコンプレックス |
プリミティブ間で座標データを共有するためのプリミティブ
メッシュとグラフのように,多数のプリミティブが同じ座標データを共有する場合,GraphicsComplexを使い座標データの一部を取り除くことでより効率的にすることができる.Mathematica の表面およびグラフプロット関数の出力は,通常この表現である.
| Out[2]= |  |
GraphicsComplexは効率的であるだけでなく,インタラクティブに便利である.座標を共有するプリミティブは,その中のひとつがドラッグされてもつながったままである.
| Out[3]= |  |
どのプリミティブもGraphicsComplexの中で使うことができ,GraphicsComplexは2Dおよび3Dグラフィックスのどちらでも使うことができる.GraphicsComplexの中で,プリミティブの座標位置は指標によりGraphicsComplexの座標データに置き換えられる.
| Out[4]= |  |
GraphicsComplexは多角形のメッシュを表す場合に特に有用である.GraphicsComplexを使うことで,隣接する多角形間のギャップの原因となる数値誤差を避けることができる.
| Out[5]= |  |