Graphics | ![]() ![]() |
カレントFigure、Axesオブジェクト
Handle Graphicsで重要なことは、カレントであるという概念です。カレントFigureは、グラフィックス出力を受け取るように設定されているウィンドウです。同様に、カレントAxesは、Axesの子オブジェクトを作成するコマンドに対するターゲットです。カレントオブジェクトは、最後に作成されたか、またはマウスでクリックされたグラフィックスオブジェクトです。
MATLABは、上位のプロパティリストの中に、これらのオブジェクトに対応する3つのハンドル番号を格納します。
これらのプロパティからキーオブジェクトのハンドル番号を得ることができます。
get(0,'CurrentFigure'); get(gcf,'CurrentAxes'); get(gcf,'CurrentObject');
gcf
- RootのCurrentFigure
プロパティの値を出力gca
- カレントFigureのCurrentAxes
プロパティの値を出力gco
- カレントFigureのCurrentObject
プロパティの値を出力これらのコマンドは、オブジェクトのハンドル番号を必要とする関数への入力引数として使用することができます。たとえば、Lineオブジェクトをクリックして、それからgco
を使って、そのハンドル番号をset
コマンドに設定することができます。
set(gco,'Marker','square')
get(gca)
で、カレントAxesのすべてのプロパティの値をリストすることができます。
h = get(gca,'Children');
つぎのステートメントで、カレントAxesの中のすべてのグラフィックスオブジェクト(ハンドル番号が隠されているものを除きます)のハンドル番号を得ることができ
get(h,'type')そこから、オブジェクトのタイプを決定することができます。
ans = 'text' 'patch' 'surface' 'line'
gcf
とgca
はカレントFigureとカレントAxesのハンドル番号を取り出す簡単な手段を提供しますが、M-ファイルではあまり役に立ちません。特に、これらの値はユーザの動作によって変更が可能なので、M-ファイルがそれを考慮に入れていないアプリケーションの一部である場合には、役に立ちません。
保護したいグラフィックスオブジェクトのハンドルにユーザがアクセスできないようにする方法の詳細については、グラフィックス出力の制御を参照してください。
![]() | オブジェクトハンドルへのアクセス | プロパティ値によるオブジェクトの検索 -- findobj | ![]() |