このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
メッシュ プロットと表面プロットの作成
メッシュ プロットと表面プロットについて
MATLAB®では、x-y平面に引かれたグリッド上にある点のz座標によって表面を定義し、隣接する点を結ぶ直線を使用してこれを表します。関数mesh
と関数surf
によって表面を 3 次元で表示します。
mesh
では、定義点を結ぶラインのみに色の付いたワイヤーフレームの表面が描かれます。surf
では、点を結ぶラインと表面の構成面が色彩表示されます。
MATLAB では、Figure のカラーマップのインデックスに z データ値をマッピングすることにより表面を彩色します。
2 変数関数の可視化
2 変数関数z=f(x,y) を表示するには、
関数の領域をカバーするように、それぞれ行と列を繰り返し使って
X
とY
行列を作成します。X
とY
を使って関数を評価し、グラフ化します。
関数meshgrid
は、2 変数関数の実行に用いるために、単一のベクトルまたは 2 つのベクトルx
とy
で指定される領域を行列X
とY
に変換します。X
の行はベクトルx
のコピーで、Y
の列はベクトルy
のコピーです。
sinc 関数のグラフ化
この例では、2 次元の関数sinc
、sin(R)/Rをxおよび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)
既定の設定では、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
表面の透明化
この例では、曲面の面を可変の程度で透明にする方法を示します。透明性 (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)
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
ライティングは、方向性のある光源によってオブジェクトを照らす手法です。この手法は、表面の形状に見やすい微妙な違いを与えます。ライティングは、3 次元グラフに現実味を加えるためにも用いることができます。
表面の操作
Figure ツール バーとカメラ ツール バーは、3 次元グラフィックスを対話的に調査する方法を提供します。カメラ ツール バーは、Figure ツール バーの[表示]メニューから[カメラのツール バー]を選択することにより表示します。
次の図は、両方のツール バーと[3 次元回転]ツールが選択されていることを示します。
これらのツールを使って、カメラを表面オブジェクトの周囲で回転、拡大、ライティングの追加、その他のビュー操作をコマンドを実行せずに行うことができます。