多数のプリミティブの効率的表現

Point[{pt1,pt2,...}], , ...の点からなるマルチポイント
Line[{line1,line2,...}], , ...からなるマルチライン
Polygon[{poly1,poly2,...}]多角形, , ...からなるマルチポリゴン

複数の要素を取ることのできるプリミティブ

プリミティブの中には,複数要素の形式を持つものもあり,これだと単独のプリミティブよりも速くMathematica フロントエンドで処理・描画することができる.多数のプリミティブの場合,複数要素形式を使うことでノートブックファイルのサイズを大きく減少させることもできる.複数要素形式を使うノートブックは使っていない場合よりもサイズが半分以下となり,描画時間も10倍速くなることがある.

以下はマルチポイントの乱数分布である.
In[1]:=
Click for copyable input
Out[1]=
GraphicsComplex[{pt1,pt2,...},data]data のグラフィックスプリミティブで整数 i として与えられる座標が とされるグラフィックスコンプレックス

プリミティブ間で座標データを共有するためのプリミティブ

メッシュとグラフのように,多数のプリミティブが同じ座標データを共有する場合,GraphicsComplexを使い座標データの一部を取り除くことでより効率的にすることができる.Mathematica の表面およびグラフプロット関数の出力は,通常この表現である.

次は座標を共有する点と線の構造である.
In[2]:=
Click for copyable input
Out[2]=

GraphicsComplexは効率的であるだけでなく,インタラクティブに便利である.座標を共有するプリミティブは,その中のひとつがドラッグされてもつながったままである.

GraphPlotの出力はGraphicsComplexなので,そのどの部分がドラッグされてもグラフはつながったままである.
In[3]:=
Click for copyable input
Out[3]=

どのプリミティブもGraphicsComplexの中で使うことができ,GraphicsComplexは2Dおよび3Dグラフィックスのどちらでも使うことができる.GraphicsComplexの中で,プリミティブの座標位置は指標によりGraphicsComplexの座標データに置き換えられる.

以下のGraphicsComplexはいくつかのタイプのプリミティブを組み合せる.
In[4]:=
Click for copyable input
Out[4]=

GraphicsComplexは多角形のメッシュを表す場合に特に有用である.GraphicsComplexを使うことで,隣接する多角形間のギャップの原因となる数値誤差を避けることができる.

Plot3Dの出力はGraphicsComplexである.
In[5]:=
Click for copyable input
Out[5]=
New to Mathematica? Find your learning path »
Have a question? Ask support »