Main Content

rbbox

領域を選択するためのラバーバンド ボックスの作成

構文

rbbox
rbbox(initialRect)
rbbox(initialRect,fixedPoint)
rbbox(initialRect,fixedPoint,stepSize)
finalRect = rbbox(...)

説明

rbbox は、現在の Figure 内のラバーバンド ボックスを初期化し、追跡します。これは、初期のボックスを 0×0 ピクセルの四角形として設定し、Figure の CurrentPoint にこのボックスを固定し、この点から追跡を開始します。

rbbox(initialRect) は、ラバーバンド ボックスの初期の位置とサイズを [x y width height] として指定します。ここで、xy は、左下隅を定義し、widthheight はサイズを定義します。initialRect は、現在の Figure の Units プロパティで指定される単位を使って、Figure ウィンドウの左下隅から測定されます。ポインターの位置に最も近いボックスの隅は、rbbox がボタンアップのイベントを受け取るまでポインターを追跡します。

rbbox(initialRect,fixedPoint) は、固定したままのボックスの隅を指定します。すべての引数は、現在の Figure の Units プロパティで指定される単位で表され、Figure ウィンドウの左下隅から測定されます。fixedPoint は、2 要素のベクトル [x y] です。追跡点は、fixedPoint で定義された固定されたボックスの隅の対角の隅です。

rbbox(initialRect,fixedPoint,stepSize) は、ラバーバンド ボックスが更新される頻度を指定します。追跡点が Figure の単位で stepSize を超えたとき、rbbox は、ラバーバンド ボックスが更新される頻度を指定します。既定のステップサイズは 1 です。

finalRect = rbbox(...) は、4 要素のベクトル [x y width height] を返します。ここで、xy は、ボックスの左下隅の xy 成分で、widthheight はボックスのサイズです。

すべて折りたたむ

Figure 内に注釈四角形を対話的に作成するには、まず、createRectangle.m という名前のプログラム ファイルを作成します。プログラム ファイル内で次を行います。

  • Figure を作成します。Figure の Units プロパティを設定して、Figure の単位を正規化します。

  • 関数 waitforbuttonpress を使用して、マウス ボタンをクリックするまでステートメントの実行をブロックします。

  • 関数 rbbox を使用して、ラバーバンド ボックスを初期化します。クリックしてドラッグすることで、四角形を描きます。マウス ボタンを離すと、関数 rbbox は四角形の位置を返します。

  • 関数 annotation を使用して、四角形を表示します。

function createRectangle
    figure('Units','normalized')
    waitforbuttonpress
    pos = rbbox;
    annotation('rectangle',pos,'Color','r') 
end

プログラム ファイルを実行します。クリックしてドラッグすることで、四角形を描きます。

createRectangle

A figure containing a red rectangle

Axes オブジェクト内に注釈四角形を作成するには、先に、組み込み操作を無効にしなければなりません。そうしないと、四角形をドラッグしたときに、座標軸がパン (2 次元表示の場合) または回転 (3 次元表示の場合) します。組み込み操作の詳細については、チャートの対話機能の制御を参照してください。

createRectangleInAxes.m というプログラム ファイルを作成します。プログラム ファイル内で次を行います。

  • 現在の Figure を変数として返し、その単位を正規化します。

  • 関数 waitforbuttonpress を使用して、マウス ボタンをクリックするまでステートメントの実行をブロックします。

  • 関数 rbbox を使用して、ラバーバンド ボックスを初期化します。クリックしてドラッグすることで、四角形を描きます。マウス ボタンを離すと、関数 rbbox は四角形の位置を返します。

  • 関数 annotation を使用して、四角形を表示します。

function createRectangleInAxes
    f = gcf;
    f.Units = 'normalized';
    waitforbuttonpress
    pos = rbbox;
    annotation('rectangle',pos,'Color','r') 
end

次に、チャートを作成します。関数 disableDefaultInteractivity を呼び出して、組み込み操作を無効にします。

plot(1:10)
ax = gca;
disableDefaultInteractivity(ax) 

プログラム ファイルを呼び出し、四角形を作成します。

createRectangleInAxes 

A chart containing a red rectangle

四角形を作成した後、関数 enableDefaultInteractivity を呼び出して、組み込み操作を再び有効にすることができます。

enableDefaultInteractivity(ax)

ヒント

rbbox は、四角形領域の定義やサイズ変更に有用です。

  • ボックスの定義に対して、(x,y) が Figure の CurrentPoint のとき、initialRect[x y 0 0] です。

  • ボックスのサイズ変更に対して、initialRect はサイズ変更する四角形の領域 (たとえば凡例) を指定します。fixedPoint は、追跡点の対角の隅です。

rbbox は、ボタンが押されていない場合は、すぐに返します。そのため、rbbox が呼び出されたとき、マウス ボタンが押されるように、rbboxwaitforbuttonpress と共に使用します。rbbox は、マウス ボタンを解除したときに返します。

バージョン履歴

R2006a より前に導入

すべて展開する