MATLAB Function Reference    

Surface Properties
プロパティの変更

つぎの2つの方法を使って、グラフィックオブジェクトプロパティを設定したり、引用したりできます。

プロパティのデフォルト値を変更するには、デフォルトプロパティ値の設定を参照してください。

Surface プロパティの記述

この節では、プロパティ名とそれらが取り得る値について説明します。中括弧で囲まれた値が、そのプロパティのデフォルト値です。

AlphaData                    m行n列のdouble、または、uint8の行列

データの透明度。オブジェクトの各面、または、頂点の透明度を設定する非NaN値から構成される行列。AlphaDataは、クラスが、double、または、uint8のどちらでも構いません。

MATLABは、つぎの3つの方法のいずれかを使って、透明度を決定します。

AlphaDataMapping             none | direct | {scaled}

透明性を使ったマッピング法。このプロパティは、MATLABが、インデックス付きalphaデータをどのように解釈するかを決定します。このプロパティは、つぎのいずれかになります。

AmbientStrength              0以上、1以下のスカラ

周囲光の強度。このプロパティは、周囲光の強度を設定します。これは、場面全体を照らす方向性のない光源です。周囲光が視覚可能であるためには、Axesに対して少なくとも 1 つの視覚可能な Light オブジェクトがなければなりません。AxesのAmbientLightColorプロパティは周囲光のカラーを指定し、このカラーはAxes 内のすべてのオブジェクトについて同じです。

また、lightオブジェクトの拡散と鏡面の強度も設定できます。サーフェスのDiffuseStrengthSpecularStrengthプロパティを参照してください。

BackFaceLighting             unlit | lit | reverselit

面のライティングのコントロール。このプロパティは、頂点の法線がカメラから離れているときの面のライティング方法を指定します。

このプロパティは、オブジェクトの内部と外部を見分けるのに役立ちます。例題は、 Using MATLAB Graphics を参照してください。

BusyAction                   cancel | {queue}

コールバックルーチンの割込みBusyActionプロパティを使って、実行中のコールバックルーチンに割込みを行うイベントの取り扱い方法をコントロールすることができます。実行中のコールバックルーチンがあれば、続いて呼び込まれるコールバックルーチンは、常にそれを中断しようとします。コールバックを実行中のオブジェクトのInterruptibleプロパティがon(デフォルト)に設定されていれば、イベントキューが処理されるつぎの点で割込みが起こります。Interruptibleプロパティがoffならば、(実行中のコールバックをもつオブジェクトの)BusyActionプロパティは、MATLABがイベントを処理する方法を指定します。つぎのような選択があります。

ButtonDownFcn                文字列

ボタンを押したときのコールバックルーチン。マウスポインタが、Surface オブジェクト上にあるとき、マウスボタンを押すと実行されるコールバックルーチン。このルーチンは、有効なMATLAB 表現、または、M-ファイル名を文字列として定義してください。これらは、MATLAB ワークスペース中で実行します。

CData                        行列

頂点のカラーZDataの中のすべての点でのカラーを指定した値を含む行列。FaceColorプロパティをtexturemapに設定すると、CDataは、ZDataと同じ大きさになる必要はありません。この場合、MATLABは、CDataZDataで定義されるサーフェスを確保できるようにマッピングされます。

カラーは、インデックス値、または、トゥルーカラーとして設定できます。インデックス付きカラーデータは、各頂点に対して単一値を指定します。これらのデータは、CDataMappingプロパティの設定に従って、カレントのカラーマップ(caxisを参照)へ線形にマッピングするようにスケーリングするか、または、カラーマップの中にインデックスとして直接解釈します。

トゥルーカラーは、各頂点に対して、RGB値を設定します。座標データ(たとえば、XData)が、mn列の行列に含まれる場合、 CDataは、m-n-3 配列になります。最初のページは、赤、2番目のページは緑、3番目のページは青になります。

トゥルーカラを表示できないコンピュータ(たとえな、8ビットディスプレー)上で表示する場合、MATLABは、フィギュアのColormapDithermapの中で使われるカラーを使って、RGB3要素に近似するものを使います。デフォルトでは、Dithermap は、カラーマップ colorcube(64) を使います。ユーザは、自身のデザイアマップを設定することもできます。

CDataMapping                 {scaled} | direct

直接カラーマッピング、または、スケーリングしたカラーマッピング。このプロパティは、MATLAB がSurfaceの色付けに使うインデックス付きカラーデータを、どのように解釈するかを決定します(CDataに対して、トゥルーカラーの仕様を使う場合、このプロパティは影響しません)。

Children                     ハンドルの行列

常に空行列です。Patch オブジェクトは、子オブジェクトをもちません。

Clipping                     {on} | off

Axes に対する長方形のクリッピングClippingonのとき、MATLAB は Axesの長方形の外側にある Surface を表示しません。

CreateFcn                    文字列

オブジェクト作成中に実行されるコールバックルーチン。このプロパティは、MATLABが、Surfaceオブジェクトを作成するときに実行するコールバックルーチンを定義します。このプロパティは、Surfaceに対するデフォルト値として定義しなければなりません。たとえば、つぎのステートメント、

は、Surface オブジェクトを作成するときのFigure のDitherMapプロパティを設定するルートレベルのデフォルト値を定義します。MATLABは、すべての Surfaceプロパティを設定した後に、このルーチンを実行します。このプロパティを既存のSurface オブジェクトに対して設定しても効果はありません。

実行しているオブジェクトのCreateFcnのハンドルは、gcbo用に得られるルートのCallbackObject プロパティを通してのみアクセスできます。

DeleteFcn                    文字列

Surface のコールバックルーチンの削除。Surface オブジェクトを削除する(たとえば、deleteを実行、または、axes、または、figureをクリア)とき、実行するコールバックルーチン。MATLAB は、オブジェクトのプロパティを削除する前に、このルーチンを実行するので、これらの値はコールバックルーチンに対して利用可能です。

実行しているオブジェクトのDeleteFcnのハンドルは、gcbo用に得られるルートのCallbackObject プロパティを通してのみアクセスできます。

DiffuseStrength              0以上、1以下のスカラ

拡散光の強度。このプロパティは、Surface上のライトの拡散成分の強度を指定します。拡散光は、Axes の Lightオブジェクトから生じます。

Surface オブジェクト上の周囲光と鏡面光も指定することができます。AmbientStrengthおよび SpecularStrength プロパティを参照してください。

EdgeAlpha                    {scalar = 1} | flat | interp

サーフェスエッジの透明度。このプロパティは、つぎのいずれかを設定します。

flat、または、interp EdgeAlphaを使うには、ZDataに同じサイズの行列として、AlphaDataを設定しなければならないことに注意してください。

EdgeColor                    {ColorSpec} | none | flat | interp

Surface エッジのカラー。このプロパティは、Surfaceを構成する各々の面のエッジのカラーを MATLAB がどのように着色するかを指定します。

EdgeLighting                 {none} | flat | gouraud | phong

ライティングの計算のアルゴリズム。このプロパティは、Surface のエッジ上でのlight オブジェクトの効果の計算に用いるアルゴリズムを選択します。選択肢は、つぎの通りです。

EraseMode                    {normal} | none | xor | background

消去モード。このプロパティは、Surfaceオブジェクトを描いたり、消去する MATLAB の機能を制御するものです。消去モードは、連続的に動きを表現するアニメーションの作成に有効なものです。すなわち、アニメーションでは、パフォーマンスを改良したり、希望する効果を得るために、個々のオブジェクトを再描画する方法を制御する必要があります。

非標準消去モードで印刷します。

MATLAB は、すべてのオブジェクトの EraseModenormalに設定されているかのように、Figureを印刷します。これは、 EraseModenone,xor、または、background で設定して作成したグラフィックスオブジェクトが、印刷紙の上では、スクリーン上と異なることを意味します。スクリーン上で、MATLAB は、非常に高いレンダリングスピードを得るためにカラーの層を数学的に組み合わせを行いますが、3次元でのソートを行っていません。しかし、これらの技法は、プリント出力には使用できません。

非標準消去モードオブジェクトを含んでいるフィギュアのイメージを作成するためMATLABの getframe コマンドか、他のスクリーンキャプチャアプリケーションを使ってください。

FaceAlpha                    {scalar = 1} | flat | interp | texturemap

パッチ面の透明度。このプロパティは、つぎのいずれかを設定します。

flat、または、interp FaceAlphaを使うには、ZDataに同じサイズの行列として、AlphaDataを設定しなければならないことに注意してください。

FaceColor                    ColorSpec | none | {flat} | interp

Surface の面のカラー。 このプロパティは、つぎのうちのいずれかです。

FaceLighting                 {none} | flat | gouraud | phong

ライティングの計算に用いるアルゴリズム。 このプロパティは、Surfaceの面上のlightオブジェクトの効果を計算するのに用いるアルゴリズムを選択します。選択肢は、以下の通りです。

HandleVisibility             {on} | callback | off

コマンドラインユーザとGUIによるオブジェクトのハンドルへのアクセスのコントロール。このプロパティは、オブジェクトのハンドルが、その子オブジェクトの親のリスト内で視覚可能であるときに指定します。このプロパティは、(ダイアログボックスのような)ユーザインタフェースデバイスのみを含んでいるFigure内に、コマンドラインから誤って書き込むことや削除することを防ぐために有効です。

HandleVisibilityonのときは、ハンドルは常に見える状態です。

HandleVisibilitycallbackに設定すると、ハンドルは、コールバックルーチンの中から、または、コールバックにより起動される関数からは可視化されますが、コマンドラインから起動した関数の中からは可視化されません。これは、コマンドラインユーザがGUIを保護しながら、コールバックルーチンがオブジェクトのハンドルに完全にアクセスできるようにするために提供されています。

HandleVisibilityoffに設定すると、常にハンドルは視覚不可能になります。これは、コールバックルーチンが、GUIを傷つける可能性(ユーザがタイプした文字列の評価のような)がある関数を呼び込み、その関数の実行中にハンドルを一時的に隠すときに必要です。HandleVisibilityoffに設定すると、常にハンドルは視覚不可能になります。これは、コールバックルーチンが、GUI(ユーザがタイプした文字列の評価のような)を傷つける可能性がある関数を呼び込み、その関数の実行中にハンドルを一時的に隠すときに必要です。

ハンドルが子オブジェクトの親のリスト内で視覚不可能のとき、オブジェクトの階層を検索したり、ハンドルのプロパティを確認してハンドルを取得する関数は、ハンドル番号を出力できません。これらの関数には、get, findobj, gca, gcf, gco, newplot, cla, clf, closeが含まれます。

ハンドルの視覚状態がcallbackoffを使って制限されているとき、オブジェクトのハンドルは、その親のChildrenプロパティには現れません。Figureは、ルートのCurrentFigure プロパティに現れず、オブジェクトは、ルートの CallbackObjectプロパティ、または、FigureのCurrentObjectプロパティに現れません。そして、Axesは、親オブジェクトのCurrentAxesプロパティに現れません。

ルートの ShowHiddenHandlesプロパティをonに設定すると、それらのHandleVisibilityの設定(これは、HandleVisibility プロパティの値に影響を与えません)に拘わらず、すべてのハンドルを視覚可能にできます。

隠されているハンドル番号も、まだ有効です。オブジェクトのハンドルが分かっていると、そのプロパティを関数setgetで設定し、ハンドルを取り扱う関数に渡すことができます。

HitTest                      {on} | off

マウスクリックによる選択HitTestは、Surface上でのマウスクリックの結果、Surfaceがカレントのオブジェクト(gco コマンドとFigureのCurrentObjectプロパティにより出力される)になり得るかどうかを指定します。HiTestoffならば、Surfaceをクリックすると、その下のオブジェクト(このオブジェクトを含むAxesかもしれません)を選択します。

Interruptible                {on} | off

コールバックルーチンの中断モードInterruptibleプロパティは、Surface のコールバックルーチンが続いて呼び込まれるコールバックルーチンによって、中断されるかどうかを制御します。 ButtonDownFcnに対して、定義されたコールバックルーチンのみが、Interruptible プロパティにより影響を受けます。MATLAB は、 drawnow,figure, getframe, pauseコマンドがルーチン内で実行されるときのみ、コールバックルーチンを中断することをチェックします。関係する情報は、BusyActionプロパティを参照してください。

LineStyle                    {-} | -- | : | -. | none

エッジラインのタイプ。 このプロパティは、サーフェスエッジを描画するときに使用するラインスタイルを決定します。利用可能なラインスタイルは、つぎのものです。

シンボル
ラインスタイル
-
実線 (デフォルト)
--
破線
:
点線
-.
一点鎖線
none
ラインなし

LineWidth                    スカラ

エッジライン幅。 サーフェスエッジを描画するために使用するラインの幅をポイント数で表したもの。デフォルトは。0.5です(1 ポイント = 1/72 インチ)。

Marker                       マーカシンボル(テーブルを参照)

マーカシンボル Markerプロパティは、頂点を表すシンボルを指定します。Markerプロパティに対して、LineStyle プロパティとは独立に値を指定できます。サポートされているマーカは、以下の通りです。

つぎのマーカを設定することができます。

マーカの設定子
詳細
+
+印
o

*
アスタリスク
.

x
十字
s
正方形
d
ダイアモンド
^
上向き三角形
v
下向き三角形
>
右向き三角形
<
左向き三角形
p
五角形
h
六角形
none
マーカなし(デフォルト)

MarkerEdgeColor              ColorSpec | none | {auto}

マーカのエッジカラー。 塗り潰したマーカ(円、正方形、ダイアモンド、五角形、六角形、その他、4種類の三角形)に対して、マーカのカラー、または、エッジカラー。

MarkerFaceColor              ColorSpec | {none} | auto

マーカ面のカラー。閉じた形(円、四角形、ダイアモンド、五角形、六角形、4種類の三角形)のマーカを塗りつぶすカラー。

MarkerSize                   ポイント数でサイズを表す

マーカのサイズ。 マーカのサイズをポイント数で指定します。MarkerSizeに対するデフォルト値は 6 ポイントです(1ポイント = 1/72インチ)。MATLAB は、指定したマーカサイズの 1/3 のサイズで点のマーカを描きます。

MeshStyle                    {both} | row | column

行と列のライン。 このプロパティは、すべてのエッジラインを描画したり、行ラインエッジ、または、列エッジラインを描画するかを指定します。

NormalMode                   {auto} | manual

MATLAB による、または、ユーザ指定の法線ベクトル。このプロパティがautoの場合、MATLAB は座標データに基づき頂点の法線を計算します。ユーザが頂点の法線を指定した場合、MATLABはこのプロパティを manual にし、自身のデータを作成しません。VertexNormalsプロパティも参照してください。

Parent                       ハンドル

サーフェスの親オブジェクト。 Surfaceオブジェクトの親は、表示されているaxesです。このプロパティを新しい親オブジェクトのハンドル番号に変更することで、Surfaceオブジェクトを他の Axes に移動できます。

Selected                     on | {off}

選択されたオブジェクト。このプロパティがonのとき、MATLAB は、SelectionHighlight プロパティもonならば、サーフェスの周りを点線で囲ったボックスを表示します。たとえば、このプロパティを設定するためにButtonDownFcnを定義すると、マウスでオブジェクトを選択することができます。

SelectionHighlight           {on} | off

選択時のオブジェクトの強調Selectedプロパティが onのとき、MATLABは、サーフェスの周りを囲む点線のボックスを描画することにより、選択している状態を示します。SelectionHighlightが、offの場合。MATLAB は、ハンドルを描画しません。

SpecularColorReflectance     0 から 1 の間のスカラ

鏡面反射光のカラー。このプロパティが0 のとき、鏡面反射光のカラーは反射するオブジェクトのカラーと光源のカラーに依存します。1のときは、光源のカラー(すなわち、Light オブジェクトの Colorプロパティのみに依存します。中間の値に対しては、その割合は線形に変化します。

SpecularExponent             1以上のスカラ

鏡面反射の粗さ。 このプロパティは鏡面スポットのサイズを制御します。ほとんどが、5 から 20 の範囲の指数です。

SpecularStrength             0以上、1以下のスカラ

鏡面光の強度。このプロパティは、Surface上の鏡面光の強度を設定します。鏡面光は、Axes 内の Light オブジェクトから生じます。

Surfaceオブジェクト上の周囲光と拡散光の強度も指定することができます。AmbientStrengthDiffuseStrength プロパティを参照してください。関数material も参照してください。

Tag                          文字列

ユーザ指定のオブジェクトラベルTagは、ユーザ指定のラベルを使ってグラフィックスオブジェクトを識別する方法を提供します。これは、オブジェクトのハンドル番号をグローバル変数として定義したり、コールバックルーチン間で引数として渡すことを必要とする、対話的なグラフィックスプログラムを構築するときに、特に有効です。任意の文字列として、Tagを定義できます。

Type                         文字列(参照のみ)

グラフィックオブジェクトのクラス。グラフィックオブジェクトのクラス。Surfaceオブジェクトに対して、Type は、常に、文字列'surface'です。

UIContextMenu                uicontextmenu オブジェクトのハンドル

コンテキストメニューとSurfaceの対応付け。このプロパティは、Surfaceと同様に同じFigure内で作成したUicontextmenuオブジェクトのハンドル番号を割り当てます。コンテキストメニューを作成するためには、関数uicontextmenuを使用してください。MATLABは、Surface上で右マウスボタンをクリック(Macintoshでは、Control-click)したときに、コンテキストメニューを表示します。

UserData                     行列

ユーザ指定のデータ。任意の行列をSurface オブジェクトに関連付けることができます。MATLAB はこのデータを使いませんが、setgetを使ってアクセスすることができます。

VertexNormals                ベクトル、または、行列

Surfaceの法線ベクトル。 このプロパティは、Surfaceに対する頂点の法線を含んでいます。MATLAB は、ライティングの計算を行うためこのデータを作成します。座標データと一致していなくても、ユーザ自身の頂点の法線データを提供することができます。これは興味のあるライティング効果の作成に有効です。

Visible                      {on} | off

Surfaceオブジェクトの可視性。デフォルトでは、すべてのSurface が視覚可能です。offに設定すると、Surface は見えなくなりますが、それでも存在していて、プロパティを設定することができます。

XData                        ベクトル、または、行列

X-座標。サーフェスの点のx点。行ベクトルで設定した場合、surface は、列数がZDataと等しくなるまで、行を内部的に繰り返します。

YData                        ベクトル、または、行列

Y-座標。サーフェスの点のy点。行ベクトルで設定した場合、surface は、行数がZDataと等しくなるまで、行を内部的に繰り返します。

ZData                        ベクトル、または、行列

Z-座標。サーフェスの点のz点。詳細は、詳細の節を参照してください。


  surface surfl