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. The axes 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) colormaphsvcolorbar

Figure contains an axes. The axes 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) colormaphsvalpha(.4)

Figure contains an axes. The axes 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') camlightleft; lightingphong

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

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

表面の操作

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

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

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