Main Content

メッシュ プロットと表面プロットの作成

メッシュ プロットと表面プロットについて

MATLAB® では、x-y 平面に引かれたグリッド上にある点の z 座標によって表面を定義し、隣接する点を結ぶ直線を使用してこれを表します。関数 mesh と関数 surf によって表面を 3 次元で表示します。

  • mesh では、定義点を結ぶラインのみに色の付いたワイヤーフレームの表面が描かれます。

  • surf では、点を結ぶラインと表面の構成面が色彩表示されます。

MATLAB では、Figure のカラーマップのインデックスに z データ値をマッピングすることにより表面を彩色します。

2 変数関数の可視化

2 変数関数 z = f (x,y) を表示するには、

  1. 関数の領域をカバーするように、それぞれ行と列を繰り返し使って XY 行列を作成します。

  2. XY を使って関数を評価し、グラフ化します。

関数 meshgrid は、2 変数関数の実行に用いるために、単一のベクトルまたは 2 つのベクトル xy で指定される領域を行列 XY に変換します。X の行はベクトル x のコピーで、Y の列はベクトル y のコピーです。

関数 sinc のグラフ化

この例では、2 次元の関数 sinc、sin(R)/Rx および y 方向で実行しグラフ化する方法を示します。R は、行列の中心にある原点からの距離です。eps (非常に小さい値) を追加すると、R = 0 の点でメッシュに穴が開くのを防ぐことができます。

[X,Y] = meshgrid(-8:.5:8); 
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(X,Y,Z)

Figure contains an axes object. The axes object contains an object of type surface.

既定では、MATLAB® は現在のカラーマップを使用してメッシュを彩色します。

色の付いた表面プロット

この例では、関数 sinc を表面プロットとしてグラフ化し、カラーマップを選択し、カラー バーを付加して、データを色にマッピングする方法を示します。

表面プロットは、四角形の面が色付けされることを除いて、メッシュ プロットに似ています。面の色は、Z の値とカラー マップによって決定されます (colormap は、順番付けられた色のリストです)。

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z)
colormap hsv
colorbar

Figure contains an axes object. The axes object contains an object of type surface.

表面の透明化

この例では、曲面の面を可変の程度で透明にする方法を示します。透明性 (alpha 値とも呼ばれる) は、オブジェクト全体に対して指定されるか、またはカラーマップと同様に機能する alphamap に基づきます。

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z)
colormap hsv
alpha(.4)

Figure contains an axes object. The axes object contains an object of type surface.

MATLAB® は、面の alpha 値が 0.4 である表面を表示します。alpha 値の範囲は 0 (完全に透明) から 1 (不透明) です。

表面プロットをライトで照らす

この例では、前の例と同じ表面を使い、赤色にカラーリングし、メッシュ ラインを除去します。light オブジェクトは、「カメラ」の左側に付加されます (カメラは、表面を見ている空間内の位置です)。

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z,'FaceColor','red','EdgeColor','none')
camlight left; 
lighting phong

Figure contains an axes object. The axes object contains an object of type surface.

ライティングは、方向性のある光源によってオブジェクトを照らす手法です。この手法は、表面の形状に見やすい微妙な違いを与えます。ライティングは、3 次元グラフに現実味を加えるためにも用いることができます。

表面の操作

Figure ツール バーとカメラ ツール バーは、3 次元グラフィックスを対話的に調査する方法を提供します。カメラ ツール バーは、Figure ツール バーの [表示] メニューから [カメラのツール バー] を選択することにより表示します。

次の図は、両方のツール バーと [3 次元回転] ツールが選択されていることを示します。

これらのツールを使って、カメラを表面オブジェクトの周囲で回転、拡大、ライティングの追加、その他のビュー操作をコマンドを実行せずに行うことができます。