zoukankan      html  css  js  c++  java
  • matlab 获取鼠标位置

    转载:http://hi.baidu.com/alec1228/item/68ea36ebe4046f3a86d9deab

    第一种途径:ginput()函数

    ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数调用形式为:

    [x,y] = ginput(n)
    [x,y] = ginput
    [x,y,button] = ginput(...)

    对于[x,y] = ginput(n),能使你从当前的坐标系中读取n个点,并返回这n个点的x,y坐标,均为nX1的向量。可以按回车提前结束读数。

    [x,y] = ginput 可以无限的读取坐标直到按下回车键。

    [x,y,button] = ginput(...) 返回x和y的坐标,以及button值(1=左键,2=中,3=右)或者按键的ASXII码值。

    第二种途径:利用figure的WindowButtonDownFcn属性。当你在图上按下鼠标的时候,可通过该属性定义一个回调程序。回调程序可以是一个有效的Matlab表达式或者一个M文件。

    那么为显示当前鼠标按下时的坐标值,我们可以将其定义为一个坐标获取和显示程序。

    例如:

    % 主函数

    function test_mouse_track()
    figure;
    axis([-10,10,0,5]);
    set(gcf,'WindowButtonDownFcn',@ButttonDownFcn);



    % 回调函数

    function ButttonDownFcn(src,event)
    pt = get(gca,'CurrentPoint');
    x = pt(1,1);
    y = pt(1,2);

    fprintf('x=%f,y=%f ',x,y);

     

     

    -------------------------------------------------

     

    今天看了一下Matlab中响应鼠标的事件,整理如下,

    (1)函数WindowButtonMotionFcn,当鼠标在窗口上运动的时候就会相应此函数,于是在此函数中可以设置运动时想要的代码,如:改变鼠标的形状:

    if 满足某一个条件

        set(gcf,'Pointer','hand') % 设置为手的形状 else     set(gcf,'Pointer','arrow') % 设置为箭头的形状 end

    (2)函数WindowButtonDownFcn,当鼠标按下去的时候就会响应的函数,但是鼠标按下分为左键和右键,如何区分:

    if strcmp(get(gcf,'SelectionType'),'alt')

    % 此时即为右键 elseif strcmp(get(gcf,'SelectionType'),'normal')

    % 此时即为左键

    end

  • 相关阅读:
    #include <NOIP2009 Junior> 细胞分裂 ——using namespace wxl;
    【NOIP合并果子】uva 10954 add all【贪心】——yhx
    NOIP2010普及组T4 三国游戏——S.B.S.
    NOIP2010普及组T3 接水问题 ——S.B.S.
    NOIP2011提高组 聪明的质监员 -SilverN
    NOIP2010提高组 关押罪犯 -SilverN
    uva 1471 defence lines——yhx
    json2的基本用法
    获取对象的属性个数
    替换指定规则的字符串
  • 原文地址:https://www.cnblogs.com/meadow-glog/p/4006290.html
Copyright © 2011-2022 走看看