User interface 金普特的十字线怎么能限制在一个情节内?

User interface 金普特的十字线怎么能限制在一个情节内?,user-interface,matlab,User Interface,Matlab,我用gui编写了一个小的MATLAB程序。在gui中,我有一个绘图,其中用户应该能够选择两点。为此,我使用函数,该函数创建用于选择的十字线。不幸的是,十字线扩展了整个窗口,并且不局限于绘图,这看起来不好看,让用户感到困惑。如何将十字线仅限于绘图区域?尝试使用getpts,它不会创建十字线;使用getpts,还可以指定用户要从中选择的轴,如中所示 [x,y] = getpts(ax); getpts的唯一问题是无法将其限制为精确的两点。但它确实有一个很好的特性,用户可以通过点击DELETE撤消点

我用gui编写了一个小的MATLAB程序。在gui中,我有一个绘图,其中用户应该能够选择两点。为此,我使用函数,该函数创建用于选择的十字线。不幸的是,十字线扩展了整个窗口,并且不局限于绘图,这看起来不好看,让用户感到困惑。如何将十字线仅限于绘图区域?

尝试使用getpts,它不会创建十字线;使用getpts,还可以指定用户要从中选择的轴,如中所示

[x,y] = getpts(ax);
getpts的唯一问题是无法将其限制为精确的两点。但它确实有一个很好的特性,用户可以通过点击DELETE撤消点选择,并通过点击ENTER确认点

仔细查看ginput文档,您描述的行为是有意的,而且显然是不可避免的

单击轴使该轴成为当前轴。即使在调用ginput之前设置了当前轴,单击的任何轴都将成为当前轴,ginput将返回相对于该轴的点。如果从多个轴中选择点,则返回的结果与它们所来自的轴的坐标系相关


尝试使用getpts,它不会创建十字线;使用getpts,还可以指定用户要从中选择的轴,如中所示

[x,y] = getpts(ax);
getpts的唯一问题是无法将其限制为精确的两点。但它确实有一个很好的特性,用户可以通过点击DELETE撤消点选择,并通过点击ENTER确认点

仔细查看ginput文档,您描述的行为是有意的,而且显然是不可避免的

单击轴使该轴成为当前轴。即使在调用ginput之前设置了当前轴,单击的任何轴都将成为当前轴,ginput将返回相对于该轴的点。如果从多个轴中选择点,则返回的结果与它们所来自的轴的坐标系相关


尝试将想要的十字线作为输入。因为它是从ginput rev修改而来的。5.32.4.4,我建议您使用最新版本制作一个新的。

尝试将想要的十字线作为输入。因为它是从ginput rev修改而来的。5.32.4.4,我建议您使用最新版本制作一个新版本。

试试ginputax。这正是你想要的。此函数与ginput一样工作,但适合在GUI中使用

下面是一个如何使用它的示例。
试试ginputax。这正是你想要的。此函数与ginput一样工作,但适合在GUI中使用

下面是一个如何使用它的示例。

您可以编写自己的代码,使用感兴趣轴的回调生成十字线。但这可能是最大的时间浪费。好的,也许不是有史以来最大的,但排名前10位。您可以编写自己的代码,使用感兴趣的轴的回调生成十字线。但这可能是最大的时间浪费。好吧,也许不是有史以来最大的,但前10名。