MATLAB Function Reference    
surface

Surface オブジェクトの作成

表示

詳細

surface は、Surfaceグラフィックスオブジェクトを作成するための低水準関数です。Surfaceは、行列要素の行と列のインデックスを x 座標と y 座標として、各要素の値を z 座標として使って作成した行列データのプロットです。

surface(Z) は、行列 Z で指定した Surface をプロットします。ここで、Z は、幾何学的に長方形グリッドで定義した一価関数です。

surface(Z,C) は、Z で指定した Surface をプロットし、C のデータで着色します("例題"を参照)。

surface(X,Y,Z) は、X, Y, Z で指定したパラメトリックなサーフェスを、Cで指定した色でプロットします。

surface(X,Y,Z,C) は、C = Zとして使うので、色は、x-y平面からのサーフェスの高さに比例します。

surface(x,y,Z)surface(x,y,Z,C) は、最初の2つの行列引数をベクトルで置き換えたもので、[m,n] = size(Z) のとき、length(x) = n で、length(y) = m でなければなりません。この場合、Surface の各面の頂点は、(x(j),y(i),Z(i,j)) になります。x は、Z の列に対応し、y は、Z の行に対応することに注意してください。パラメトリックなサーフェスの詳細な説明は、関数 surf を参照してください。

surface(...'PropertyName',PropertyValue,...) は、X, Y, Z, C に加えて、プロパティ名とプロパティ値の組合わせを引数として、Surface のプロパティを指定します。これらのプロパティは、"Surfaceのプロパティ" の節に記述されています。

h = surface(...) は、Surface オブジェクトのハンドル番号を出力します。

注意

surfmesh のような高水準の領域作成関数と異なり、surface は、Figure や Axes の NextPlotプロパティの設定に従いません。カレントの Axes に Surface オブジェクトを描画するだけです。

カラーデータ(C)を指定しない場合、MATLAB は、Surface の着色の指定に行列(Z)を使います。この場合、色は、Z の値に比例します。Surface の領域を定義するデータとは別に、Surface の着色のために別々の行列を指定することができます。

プロパティ名とプロパティ値の組合わせ、構造体配列、セル配列としてプロパティを指定することができます(これらのデータタイプの指定方法の例は、setget を参照してください)。

surface は、XData, YData, ZData, CData プロパティに対するプロパティ名を省略することができます。たとえば、

は、つぎと等価です。

入力引数として、つぎのように1個の行列を指定したとき、

MATLAB は、ユーザが、指定するかのようにデータのプロパティを割り当てます。

axis, caxis, colormap, hold, shading, view コマンドは、Surfaceに影響を与えるプロパティを設定します。オブジェクト作成後、setget を使って、プロパティ値の設定や参照ができます。

例題

つぎの例は、M-ファイルpeaks を使って、Surface を作成します。そして、clown のイメージを使って着色します。ZData は、49行49列の行列で、 CDataは、200行320列の行列です。異なる次元の ZDataCData を使うために、Surface の FaceColortexturemap に設定しなければなりません。

プロパティ名とプロパティ値を組合わせて作成した形式 surface(Z,C) の使用に注目してください。

clownのデータ(X)は、MATLABが、通常 'ij' 形式の軸の番号付けと directCDataMapping を用いて表示する image コマンドによって表示されるので、この例題は、flipudを使って、垂直方向にデータを反転し、CDataMappingプロパティをdirectに設定します。

参考

ColorSpec, mesh, patch, pcolor, surf

オブジェクトの階層構造



デフォルトプロパティの設定

Axes, Figure, Rootレベルで、デフォルトのSurfaceオブジェクトプロパティを設定することができます。

ここで、Propertyは、ユーザが設定するデフォルト値をもつSurfaceのプロパティ名で、PropertyValueはユーザが指定する値です。setgetを使ってSurfaceのプロパティにアクセスができます。

プロパティリスト

つぎの表は、Surfaceプロパティと簡単な説明を示したものです。プロパティ名は、詳細な説明にリンクされています。

プロパティ名
プロパティの詳細
プロパティ値
オブジェクトを定義するデータ
XData
サーフェスの頂点の x-座標
値: ベクトル、または、行列
YData
サーフェスの頂点の y-座標
値: ベクトル、または、行列
ZData
サーフェスの頂点の z-座標
値: 行列
カラーの設定
CData
カラーデータ
値: スカラ、ベクトル、または、行列
デフォルト: [] 空行列
CDataMapping
CData をカラーマップへのマッピングの制御
値: scaled, direct
デフォルト: scaled
EdgeColor
フェースエッジのカラー
値: ColorSpec, none, flat, interp
デフォルト: ColorSpec
FaceColor
フェースのカラー
値: ColorSpec, none, flat, interp
デフォルト: ColorSpec
MarkerEdgeColor
マーカのカラーまたは塗り潰されたマーカのエッジのカラー
値: ColorSpec, none, auto
デフォルト: auto
MarkerFaceColor
閉じた形のマーカを塗り潰すカラー
値: ColorSpec, none, auto
デフォルト: none
透明度の設定


AlphaData
透明度データ
double、または、uint8 の m 行 n 列の行列
AlphaDataMapping
透明度マッピング方法
none, direct, scaled
デフォルト: scaled
EdgeAlpha
パッチ面のエッジの透明度
scalar, flat, interp
デフォルト: 1 (不透明)
FaceAlpha
パッチ面の透明度
scalar, flat, interp, texture
デフォルト: 1 (不透明)
Lightの影響の制御
AmbientStrength
周囲光の強度
値: 0以上、1以下のスカラ
デフォルト: 0.3
BackFaceLighting
カメラからの面のライティングの制御
値: unlit, lit, reverselit
デフォルト: reverselit
DiffuseStrength
拡散光の強度
値: 0以上、1以下のスカラ
デフォルト: 0.6
EdgeLighting
エッジのライティングの手法
値: none, flat, gouraud, phong
デフォルト: none
FaceLighting
面のライティングの手法
値: none, flat, gouraud, phong
デフォルト: none
NormalMode
MATLAB指定、または、ユーザ指定の法線ベクトル
値: auto, manual
デフォルト: auto
SpecularColorReflectance
鏡面反射光のカラー
値: 0以上、1以下のスカラ
デフォルト: 1
SpecularExponent
鏡面反射光の粗さ
値: 0以上、1以下のスカラ
デフォルト: 10
SpecularStrength
鏡面光の強度
値: 0以上、1以下のスカラ
デフォルト: 0.9
VertexNormals
頂点の法線ベクトル
値: matrix
エッジとマーカの定義
LineStyle
5種類のラインスタイルから選択
値: -, --, :, -., none
デフォルト: -
LineWidth
ポイント単位のエッジの幅
値: scalar
デフォルト: 0.5 points
Marker
データ点でプロットするマーカシンボル
値: Markerプロパティを参照
デフォルト: none
MarkerSize
ポイント単位のマーカサイズ
値: ポイント単位のサイズ
デフォルト: 6
外観の制御
Clipping
Axesで作成される長方形へのクリッピング
値: on, off
デフォルト: on
EraseMode
Surfaceの描画と消去の方法 (アニメーションに対して役立ちます)
値: normal, none, xor, background
デフォルト: normal
MeshStyle
すべてのエッジのラインの描画またはエッジの行、または、列のみの描画の指定
値: both, row, column
デフォルト: both
SelectionHighlight
(Selected プロパティがonに設定されているとき)選択したときに強調する
値: on, off
デフォルト: on
Visible
Surfaceの可視化の指定
値: on, off
デフォルト: on
オブジェクトへのアクセスの制御
HandleVisibility
Surfaceのハンドルが他の関数に対して、視覚可能であるかどうかを指定
値: on, callback, off
デフォルト: on
HitTest
Surfaceがカレントオブジェクトになることができるかどうかを指定(FigureのCurrentObjectプロパティを参照)
値: on, off
デフォルト: on
コールバックルーチンの実行に関するプロパティ
BusyAction
コールバックルーチン割り込みの取り扱い方法の指定
値: cancel, queue
デフォルト: queue
ButtonDownFcn
Surface上でマウスボタンを押したときに実行するコールバックルーチンの定義
値: 文字列
デフォルト: '' (空文字列)
CreateFcn
Surfaceが作成されたときに実行するコールバックルーチンの定義
値: 文字列
デフォルト: '' (空文字列)
DeleteFcn
(close、または、deleteにより)Surfaceが削除されたときに実行するコールバックルーチンの定義
値: 文字列
デフォルト: '' (空文字列)
Interruptible
コールバックルーチンが割り込むかどうかを指定
値: on, off
デフォルト: on (割り込み可能)
UIContextMenu
コンテキストメニューとSurfaceの対応付け
値: Uicontrextmenuの ハンドル番号
Surfaceの一般的な情報
Children
Surfaceオブジェクトは子オブジェクトをもちません
値: [] (空行列)
Parent
Surfaceオブジェクトの親オブジェクトは、常に、Axes オブジェクトです。
値: axes ハンドル番号
Selected
Surfaceが"選択された"状態かどうかを検出
値: on, off
デフォルト: on
Tag
ユーザ指定のラベル
値: 任意の文字列
デフォルト: '' (empty string)
Type
グラフィックスオブジェクトのタイプ(参照のみ)
値: the string 'surface'
UserData
ユーザ定義データ
値: 任意の行列
デフォルト: [] (空行列)


 surf2patch Surface Properties