在MATLAB中记录指针的坐标

时间:2014-02-04 15:01:50

标签: matlab

我想借助箭头键移动指针,我想在x2,y2的每个位置记录坐标?指针的初始位置是0,0

1 个答案:

答案 0 :(得分:0)

要简单地使用指针位置,您可以使用以下函数来获取和设置屏幕上的指针位置。

location = get(0,'PointerLocation')
set(0,'PointerLocation',[0,0]);

但是,除非真的有必要,否则我特别建议这样做,因为它可能会提供糟糕的用户体验。人们不喜欢电脑上移动鼠标,至少我不喜欢。

阅读here关于可在MATLAB中使用的各种“根”属性。

注意:在Mac OS上无法设置指针位置

<强>更新

如果您希望能够使用箭头键控制光标,则需要首先创建一个图形,然后将keylistener附加到其上。触发时,此键侦听器将调用可以移动鼠标的单独函数。

创建听众

h_fig = figure;
set(h_fig,'KeyPressFcn',@(h_obj,evt) moveCursor(evt.Key));

这将确保每次在图形处于活动状态时按下某个键时,它将传递给您将调用moveCursor的函数。移动光标功能位于单独的文件中,当然称为moveCursor.m,如下所示

<强> moveCursor.m

function moveCursor(key)
    numPixels = 100;
    loc = get(0,'PointerLocation');
    if strcmpi(key,'uparrow')
        loc(2) = loc(2)+numPixels;
    elseif strcmpi(key,'downarrow')
        loc(2) = loc(2)-numPixels;
    elseif strcmpi(key,'leftarrow')
        loc(1) = loc(1)-numPixels;
    elseif strcmpi(key,'rightarrow')
        loc(1) = loc(1)+numPixels;
    end
    set(0,'PointerLocation',loc);
end

现在您只需运行侦听器命令即可启动窗口,按箭头键,它应该将光标移动moveCursor.m中指定的像素数量,在本例中为100像素。

我仍然不会特别推荐这种行为,但知道这是可能的。