MATLAB Function Reference    
surf, surfc

3次元シェーディングサーフェスプロット

表示

詳細

surfsurfc は、数学関数を長方形領域上で視覚化する関数です。surfsurfc は、Z、または、C で指定したカラーを用いて、X, Y, Z で指定した着色されたパラメトリックなサーフェスを作成します

surf(Z) は、[m,n] = size(Z)のとき、x = 1:ny = 1:m を使って、行列Zz 成分から3次元シェーディングサーフェスを作成します。高さ Z は、幾何学的に長方形グリッドで定義された一価関数です。Z は、Surface オブジェクトの高さと同様なカラーデータを指定するので、カラーはサーフェスの高さに比例します。

surf(X,Y,Z) は、Surfaceオブジェクトの高さとカラーデータに対する Z を使って、シェーディングした Surface オブジェクトを作成します。XY は、Surface オブジェクトの x 成分と y 成分を定義するベクトル、または、行列です。XY がベクトルの場合、[m,n] = size(Z)のとき、length(X) = n で、length(Y) = m です。この場合、Surface の各面の頂点は、 です。

surf(X,Y,Z,C) は、C で指定した色をもつシェーディングされたサーフェスを作成します。MATLAB は、カレントのカラーマップから色を得るために、このデータの線形変換を行います。

surf(...,'PropertyName',PropertyValue) は、Surfaceプロパティ とデータを指定します。

surfc(...) は、Surface オブジェクトの下部にコンタープロットを描画します。

h = surf(...)h = surfc(...) は、Surface グラフィックスオブジェクトのハンドル番号を出力します。

アルゴリズム

概念的には、パラメトリックなサーフェスは、長方形領域上を連続的に変化する2つの独立変数 ij でパラメータ化されます。たとえば、1 i m and 1 j n のように変化します。サーフェスは、3つの関数 x(i,j), y(i,j), z(i,j) で与えられます。ijが整数値のとき、整数グリッド点で長方形グリッドを定義します。関数x(i,j), y(i,j), z(i,j) は、3個のmn 列の行列 X, Y,Z になります。サーフェスの色は、行列 C で記述される4番目の関数 c(i,j) で与えます。

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

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

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

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

この場合、Cは、X, Y, Z と同じサイズで、最終行と最終列は無視されます。つまり、行と列の次元は、X, Y, Z の列と行の次元より1つ小さくできます。

surfsurfc は、view(3) を使って、視点を指定します。

軸のラベルは、X, Y, Z の範囲、または、Axesの XLimMode, YLimMode, ZLimMode プロパティ(関数 axis で設定します)のカレントの設定で決定されます。

色のスケーリングは、C の範囲、または、Axesの CLimClimMode プロパティ(関数 caxis で設定します)で決められます。スケーリングされた色の値は、カレントのカラーマップのインデックスとして使われます。

例題

関数 peaks のサーフェスとコンタープロット図を表示します。

Hadamard 行列の+1と-1のパターンを球面に彩色します。

参考

axis, caxis, colormap, contour, mesh, pcolor, shading, view


 support surf2patch