ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

surf

3 次元影付き表面プロット

構文

surf(Z)
surf(Z,C)
surf(X,Y,Z)
surf(X,Y,Z,C)
surf(...,'PropertyName',PropertyValue)
surf(axes_handles,...)
h = surf(...)

説明

surf(Z) は、x = 1:ny = 1:m を使用して、行列 Zz 成分から 3 次元のシェーディングされた表面を作成します。ここで、[m,n] = size(Z) です。高さ Z は、幾何学的に四角形のグリッドで定義された一価関数です。Z は、色が面の高さに比例するようにカラー データと面の高さを指定します。

surf(Z,C) は、幾何学的四角形グリッドで定義された一価関数 Z の高さをプロットし、行列 C を使用して表面の色を決定します。ここで、C は Z と同じサイズであることが前提となります。C の定義方法の詳細は、「メッシュと表面プロットのカラーリング」を参照してください。

surf(X,Y,Z) は、カラー データと面の高さに Z を使用します。XY は、面の x および y 成分を定義するベクトルまたは行列です。XY がベクトルの場合、[m,n] = size(Z) のとき、length(X) = n かつ length(Y) = m です。ここで、[m,n] = size(Z) です。この場合、表面の各面の頂点は、(X(j)、Y(i)、Z(i,j)) です。任意の領域で X 行列および Y 行列を作成するには、関数 meshgrid を使用します。

surf(X,Y,Z,C) は、C を使用して色を定義します。MATLAB® は、このデータ上で線形変換を実行し、現在のカラーマップからカラーを取得します。

surf(...,'PropertyName',PropertyValue) は表面プロパティとデータを指定します。プロパティの一覧については、Chart Surface のプロパティ を参照してください。

surf(axes_handles,...) は、現在の Axes (関数 gca) の代わりに ハンドル axes_handle をもつ Axes にプロットします。

h = surf(...) は、chart surface グラフィックス オブジェクトのハンドルを返します。

すべて折りたたむ

関数 peaks を使用して、25 行 25 列の行列として XY および Z を定義します。次に、表面のプロットを作成します。

[X,Y,Z] = peaks(25);

figure
surf(X,Y,Z);

surf は、XY および Z の対応する値から表面プロットを作成します。カラー データ C を定義しない場合、surfZ を使用して色を決定するため、色は表面の高さに比例して変化します。

球体を作成し、値 1-1 を含む行列であるアダマール行列のパターンを使用して色を付けます。カラーマップを 2 つの RGB 3 成分の値の配列に設定して、プロットに使用される色を変更します。

k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);

figure
surf(x,y,z,c);
colormap([1  1  0; 0  1  1])
axis equal

詳細

すべて折りたたむ

ヒント

関数 surf には、複素数入力は使用できません。

アルゴリズム

パラメトリックな表面は、2 つの独立変数 ij でパラメーター化されていると見なします。これらの独立変数は、1im1jn のように、四角形領域上で連続的に変化します。3 つの関数 x(i,j)y(i,j)z(i,j) は、表面を指定します。ij が整数値の場合、整数グリッド点のある四角形グリッドが定義されます。関数 x(i,j)y(i,j)z(i,j) は、3つの mn 列の行列 XY および Z になります。表面の色は、行列 C で記述される 4 番目の関数 c(i,j) です。

四角形グリッドの各グリッド点は、その点に最も近い 4 つの点を結んだものと考えることができます。

       i-1,j
         |
i,j-1 - i,j - i,j+1
         |
       i+1,j

この四角形グリッドには、辺を共有するパッチが 4 つあります。これを他の方法で表すために、[X(:) Y(:) Z(:)] は、3 次元空間に与えた 3 要素の点のリストを返します。四角形領域の内部の各点は、行列のインデックスから得られる 4 つの近接点と結合されています。表面のエッジのポイントには 3 つの近傍があります。グリッド隅の 4 つのポイントには、2 つの近傍しかありません。このようにして、四辺形のメッシュあるいは quad-mesh を定義します。

表面の色は、2 つの方法で指定できます。頂点の値による指定と、各パッチの中心の値による指定ができます。一般的な設定では、表面は、xy の一価関数である必要はありません。さらに、辺を共有する表面のパッチは、平面である必要はありません。たとえば、極座標系、円柱座標系、球面座標系で定義される表面を表示できます。

関数 shading は、シェーディングを設定します。シェーディングが、interp の場合、C は、XY および Z と同じサイズでなければなりません。これは頂点の色を指定します。表面パッチ内の色は、ローカル座標の双一次関数になります。シェーディングが、faceted (既定の設定) または flat の場合、C(i,j) は、パッチ内に一定色を指定します。

 (i,j)   -   (i,j+1)
   |   C(i,j)  |
(i+1,j)  -  (i+1,j+1)

この場合、C は、XY および Z と同じサイズで、最終行と最終列は無視されます。つまり、行と列の次元は、XY、および Z の列と行の次元より 1 つ小さい次元になる場合があります。

関数 surf は、view(3) を使用して視点を指定します。

座標軸のラベルは、XY および Z の範囲または座標軸の XLimModeYLimModeZLimMode プロパティの現在の設定で決定されます。これらのプロパティは、関数 axis を使用して設定することもできます。

色のスケーリングは、C の範囲または座標軸の CLim および CLimMode プロパティの現在の設定で決定されます。このプロパティは、関数 caxis を使用して設定することもできます。スケーリングされた色の値は、現在のカラーマップへのインデックスです。

R2006a より前に導入

この情報は役に立ちましたか?