我正在创建一个实时MATLAB演示,我需要通过点击axes
来选择一个感兴趣的点。通常,系统工作正常,我可以使用ButtonDownFcn
修改变量。但是会出现以下问题
当我在同一轴上绘制其他数据(例如散点图)时,如果我单击散点图而不是ButtonDownFcn
,那么似乎不会触发axes
没有情节。没有错误。
这是一个问题,因为我的散点图非常密集,我想要点击的点位于绘图对象的下方。
我如何才能使所有鼠标点击都由axes
注册,以便每次点击都会执行ButtonDownFcn
。
答案 0 :(得分:1)
您希望利用HitTest
property禁用所有其他图形对象响应鼠标点击的功能。
如果您只想启用axes
上的点击,那么这应该有效。
% Disable callbacks for all objects within the current axes
set(findall(gca), 'HitTest', 'off')
% Enable click events for the axes and set the buttondownfcn
set(gca, 'HitTest', 'on', 'ButtonDownFcn', callback)