2

私はwhileループを使用しており、その中でMATLABにginputを追加してマウスの位置をキャプチャしています。返された位置が何らかの領域内にあるかどうかを毎回チェックするので、現在の図に曲線をプロットします。しかし問題は、ginput を使用することで、位置が返される前にエンターを押さなければならないことです。現在のカーソルがいくつかのポイントの上に置かれたときにコールバック関数がトリガーされるように、マウスイベントをキャプチャする方法はありますか? ありがとう。

4

1 に答える 1

3

使用している Figure が既にあるので、Figure のリスニング プロパティを設定できます。

set(gcf,'WindowButtonMotionFcn', @mouseMoveListener);

ただし、「mouseMoveListener」という関数を作成する必要があります (別の名前を付けたい場合は、@ 記号の後の単語を任意の名前に変更し、実際のイベント関数にもその名前が付けられていることを確認してください)。

関数内でmouseMoveListener、マウス座標を取得できるようになりました。

MousePos = get(mainAxis,'CurrentPoint');

これは、軸座標に対するマウスの現在のポイントを示します。そこから、what if ステートメントを使用して、位置が目的の場所にあることを確認し、その情報に基づいて必要なタスクを実行できます。

于 2012-08-05T06:03:17.923 に答える