私は MATLAB で作業しており、画面上のどこからでもカーソル位置を取得したいと考えています。
マウスが動いている間、カーソルの位置を連続的に取得したいと思います。しかし、MATLAB はGUI でのみマウスが動いているときにマウスの位置を取得できることがわかりました。
MATLAB の GUI ではなく、どうすれば同じことを達成できますか?
私は MATLAB で作業しており、画面上のどこからでもカーソル位置を取得したいと考えています。
マウスが動いている間、カーソルの位置を連続的に取得したいと思います。しかし、MATLAB はGUI でのみマウスが動いているときにマウスの位置を取得できることがわかりました。
MATLAB の GUI ではなく、どうすれば同じことを達成できますか?
MATLAB は GUI 内でしかマウス座標を取得できないと確信していますか? GUI とは関係なく、画面上の任意の場所でマウスの位置を取得するのは実際には非常に簡単です。
以下を使用します。
get(0, 'PointerLocation')
マウスを動かして、毎回このコマンドを呼び出して、これを試してください。マウスを動かすと、出力が変化し続けることがわかります。これが GUI とは無関係に機能することがわかります。
この関数の出力は、最初の要素がx
または列の位置で、2 番目の要素がy
マウスのまたは行の位置である 2 つの要素の配列を返します。基準点は画面の左下隅を基準にしていることに注意してください。そのため、マウスを画面の左下隅に(1,1)
配置すると、マウスを画面の右上隅に配置すると画面の解像度が得られます。
ここで、マウスの位置を継続的に取得したい場合はwhile
、CPU が過負荷にならないように、短時間一時停止しながらこの呼び出しをループに入れることを検討してください。したがって、次のようにします。
while condition
loc = get(0, 'PointerLocation');
%// Do something
%...
%...
pause(0.01); %// Pause for 0.01 ms
end