MATLAB Function Reference | ![]() ![]() |
表示
surface(Z) surface(Z,C) surface(X,Y,Z) surface(X,Y,Z,C) surface(...'PropertyName',PropertyValue,...) h = 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 オブジェクトのハンドル番号を出力します。
注意
surf
や mesh
のような高水準の領域作成関数と異なり、surface
は、Figure や Axes の NextPlot
プロパティの設定に従いません。カレントの Axes に Surface オブジェクトを描画するだけです。
カラーデータ(C
)を指定しない場合、MATLAB は、Surface の着色の指定に行列(Z
)を使います。この場合、色は、Z
の値に比例します。Surface の領域を定義するデータとは別に、Surface の着色のために別々の行列を指定することができます。
プロパティ名とプロパティ値の組合わせ、構造体配列、セル配列としてプロパティを指定することができます(これらのデータタイプの指定方法の例は、set
と get
を参照してください)。
surface
は、XData
, YData
, ZData
, CData
プロパティに対するプロパティ名を省略することができます。たとえば、
surface('XData',X,'YData',Y,'ZData',Z,'CData',C)
surface(X,Y,Z,C)
surface(Z)
MATLAB は、ユーザが、指定するかのようにデータのプロパティを割り当てます。
surface('XData',[1:size(Z,2)],... 'YData',[1:size(Z,1)],... 'ZData',Z,... 'CData',Z)
axis
, caxis
, colormap
, hold
, shading
, view
コマンドは、Surfaceに影響を与えるプロパティを設定します。オブジェクト作成後、set
や get
を使って、プロパティ値の設定や参照ができます。
例題
つぎの例は、M-ファイルpeaks
を使って、Surface を作成します。そして、clown のイメージを使って着色します。ZData
は、49行49列の行列で、 CData
は、200行320列の行列です。異なる次元の ZData
とCData
を使うために、Surface の FaceColor
を texturemap
に設定しなければなりません。
load clown surface(peaks,flipud(X),... 'FaceColor','texturemap',... 'EdgeColor','none',... 'CDataMapping','direct') colormap(map) view(-35,45)
![]()
プロパティ名とプロパティ値を組合わせて作成した形式 surface(Z,C)
の使用に注目してください。
clownのデータ(X
)は、MATLABが、通常 'ij
' 形式の軸の番号付けと directCDataMapping を用いて表示する image
コマンドによって表示されるので、この例題は、flipud
を使って、垂直方向にデータを反転し、CDataMapping
プロパティをdirect
に設定します。
参考
ColorSpec
, mesh
, patch
, pcolor
, surf
オブジェクトの階層構造
デフォルトプロパティの設定
Axes, Figure, Rootレベルで、デフォルトのSurfaceオブジェクトプロパティを設定することができます。
set(0,'DefaultSurfaceProperty',PropertyValue...) set(gcf,'DefaultSurfaceProperty',PropertyValue...) set(gca,'DefaultSurfaceProperty',PropertyValue...)
ここで、Property
は、ユーザが設定するデフォルト値をもつSurfaceのプロパティ名で、PropertyValue
はユーザが指定する値です。set
とget
を使って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 |
コールバックルーチンの実行に関するプロパティ | ||
|
コールバックルーチン割り込みの取り扱い方法の指定 |
値: cancel , queue デフォルト: queue |
|
Surface上でマウスボタンを押したときに実行するコールバックルーチンの定義 |
値: 文字列 デフォルト: '' (空文字列) |
|
Surfaceが作成されたときに実行するコールバックルーチンの定義 |
値: 文字列 デフォルト: '' (空文字列) |
|
(close 、または、delete により)Surfaceが削除されたときに実行するコールバックルーチンの定義 |
値: 文字列 デフォルト: '' (空文字列) |
|
コールバックルーチンが割り込むかどうかを指定 |
値: on , off デフォルト: on (割り込み可能) |
|
コンテキストメニューとSurfaceの対応付け |
値: Uicontrextmenuの ハンドル番号 |
Surfaceの一般的な情報 | ||
Children |
Surfaceオブジェクトは子オブジェクトをもちません |
値: [] (空行列) |
Parent |
Surfaceオブジェクトの親オブジェクトは、常に、Axes オブジェクトです。 |
値: axes ハンドル番号 |
Selected |
Surfaceが"選択された"状態かどうかを検出 |
値: on , off デフォルト: on |
Tag |
ユーザ指定のラベル |
値: 任意の文字列 デフォルト: '' (empty string) |
Type |
グラフィックスオブジェクトのタイプ(参照のみ) |
値: the string 'surface' |
|
ユーザ定義データ |
値: 任意の行列 デフォルト: [] (空行列) |
![]() | surf2patch | Surface Properties | ![]() |