如何将ginput的十字准线限制在一个情节中?

时间:2010-05-10 11:51:15

标签: user-interface matlab

我用gui写了一个小的MATLAB程序。在gui里面,我有一个用户应该能够选择两个点的情节。为此,我使用函数ginput,它创建一个十字准线供选择。不幸的是,十字准线延伸了整个窗口,并不局限于情节,这看起来不太好并且让用户感到困惑。如何将十字准线仅限于情节区域?

3 个答案:

答案 0 :(得分:4)

尝试使用不会创建十字准线的getpts;使用getpts,您还可以指定希望用户选择的轴,如

[x,y] = getpts(ax);

getpts的唯一问题是没有办法将它限制在两个点上。但它确实有一个很好的功能,即用户可以通过点击DELETE撤消点选择,并通过点击ENTER确认点。

密切关注ginput文档,您描述的行为是有意的,显然是不可避免的

doc ginput
  

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

答案 1 :(得分:2)

尝试将所需十字准线作为输入的this slightly modified ginput script on File Exchange。因为它是从ginput rev修改的。 5.32.4.4,我建议你从最新版本开始新的。

答案 2 :(得分:1)

尝试ginputax。它完全符合你的要求。此函数用作ginput,但它适用于GUI。

以下是如何使用它的示例。 http://www.mathworks.com/matlabcentral/fileexchange/39799