Main Content

dragrect

マウスを使って四角形をドラッグ

構文

[finalrect] = dragrect(initialrect)
[finalrect] = dragrect(initialrect,stepsize)

説明

[finalrect] = dragrect(initialrect) は、画面上の任意の位置にある 1 つ以上の四角形を追跡します。n 行 4 列の行列 initialrect により四角形を定義します。initialrect の各行は、[left bottom width height] の値のように初期の四角形の位置を含んでいなければなりません。dragrect は、四角形の最終位置を finalrect に返します。

[finalrect] = dragrect(initialrect,stepsize) は、stepsize で指定されたインクリメント量だけ四角形を移動します。最初の四角形の左下隅は、Figure の左下隅から始まるサイズ stepsize のグリッドで決められ、その他の四角形は、最初の四角形からそれらのオリジナルのオフセットで決められます。

[finalrect] = dragrect(...) は、マウス ボタンが解除されたときの四角形の最終位置を返します。既定のステップ サイズは 1 です。

すべて折りたたむ

Figure 内で四角形を追跡するには、最初に trackRectangle.m というプログラム ファイルを作成します。プログラム ファイル内で次を行います。

  • Figure を作成し、Figure オブジェクトを返します。

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

  • 関数 dragrect を使用して 50×100 ピクセルの四角形を表示します。四角形の左下隅はカーソル位置です。

  • 四角形を別の位置にドラッグします。マウス ボタンを離すと、関数 dragrect は四角形の最終位置を返します。

function r2 = trackRectangle
    f = figure;
    waitforbuttonpress
    p = f.CurrentPoint;
    r1 = [p(1,1) p(1,2) 50 100];
    r2 = dragrect(r1);
end

プログラム ファイルを実行します。四角形をクリックしてドラッグし、追跡します。

trackRectangle
ans =

   330   275    50   100

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

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

  • 現在の Figure を変数として返します。

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

  • 関数 dragrect を使用して 50×100 ピクセルの四角形を表示します。四角形の左下隅はカーソル位置です。

  • 四角形を別の位置にドラッグします。マウス ボタンを離すと、関数 dragrect は四角形の最終位置を返します。

function r2 = trackRectangleInAxes
    f = gcf;
    waitforbuttonpress
    p = f.CurrentPoint;
    r1 = [p(1,1) p(1,2) 50 100];
    r2 = dragrect(r1);
end

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

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

プログラム ファイルを呼び出します。四角形をクリックしてドラッグし、追跡します。

trackRectangleInAxes
ans =

   330   275    50   100

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

enableDefaultInteractivity(ax)

詳細

すべて折りたたむ

ピクセル

Windows® および Macintosh システムでのピクセル単位の距離は、システムの解像度に依存しません。

  • Windows システムの 1 ピクセルは 1/96 インチです。

  • Macintosh システムの 1 ピクセルは 1/72 インチです。

Linux® システムでは、ピクセルのサイズは使用しているシステムの解像度によって決まります。

ヒント

関数 dragrect は、マウス ボタンが現在押されていない場合、すぐに返されます。関数 dragrect が呼び出されたときにマウス ボタンが必ず押されているようにするには、ButtonDownFcn で、またはコマンド ラインから waitforbuttonpress と組み合わせて関数 dragrect を使用します。マウス ボタンが離されると、関数 dragrect が返されます。

ドラッグが Figure ウィンドウ上で終了すると、四角形の位置が、その Figure の座標系に返されます。ドラッグを Figure ウィンドウの外で終了すると、四角形は、ドラッグを開始した Figure の座標系に返されます。

メモ

関数 dragrect では、Figure に正規化された単位は使用できません。

バージョン履歴

R2006a より前に導入

すべて展開する