2

我正在使用一个 while 循环,在其中我在 MATLAB 中添加 ginput 来捕获鼠标的位置。我每次检查返回的位置是否在某个区域内,所以我会在当前图形上绘制一些曲线。但问题是,通过使用 ginput,我必须在返回位置之前按 enter。是否有任何方法可以捕获鼠标事件,以便当当前光标悬停在某些点上时,将触发回调函数?谢谢。

4

1 回答 1

3

由于您已经有一个正在使用的图形,您可以为该图形设置监听属性:

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

但是现在您必须创建一个名为“mouseMoveListener”的函数(如果您想将其命名为其他名称,请将@ 符号后面的单词更改为您想要的任何名称,并确保实际的事件函数也被命名)。

在您的函数mouseMoveListener中,您现在可以获得鼠标坐标:

MousePos = get(mainAxis,'CurrentPoint');

它告诉鼠标相对于轴坐标的当前点。从那里,您可以使用任何 if 语句检查该位置是否在您想要的位置,并根据该信息执行您想要的任何任务。

于 2012-08-05T06:03:17.923 回答