获取图中鼠标的标准化位置

时间:2016-06-10 15:39:54

标签: matlab matlab-figure

我正在尝试通过以下'WindowButtonDownFcn'获取鼠标的当前鼠标位置,这是我的代码:

   f = figure(1);
   set(f,'WindowButtonDownFcn',@mouselocation)
   uiwait(f)
    function mouselocation(source,callback)
        get(source,'CurrentPoint')
    end

当我点击时,我确实得到了鼠标的当前位置,但我们没有规范化,我试过了:

 get(source,'CurrentPoint','units','normalized')

但它似乎给了我一个错误

  

输入参数太多。

1 个答案:

答案 0 :(得分:0)

您可以使用hgconvertunits在图形(或任何图形对象)当前单位和规范化单位之间进行转换。

pt = hgconvertunits(source, [get(source, 'CurrentPoint') 1 1], ...
                    get(src, 'Units'), 'Normalized', source);
pt = pt(1:2);

或者,您只需将您的数字Units更改为Normalized,然后CurrentPoint将自动以标准化单位返回。

fig = figure('Units', 'Normalized');

get(source, 'CurrentPoint')