【问题标题】:Interactively manipulating a rectangle on a matlab figure在 matlab 图形上交互操作矩形
【发布时间】:2011-09-21 18:42:27
【问题描述】:

我想在 matlab 图形上绘制和操作一个矩形。通过操作,我的意思是我想通过“直观的”鼠标点击来拖动、旋转、调整大小(改变边长)矩形。

我还没有找到任何内置机制来执行此操作。 (属性编辑器?还是matlab函数?还是matlab文件交换?)可能我google不好。

所以,为了编写我自己的,在我看来,矩形函数上的 buttonDownFcn 是一个开始。也就是说,我可以用它来监听矩形本身的鼠标点击,但是矩形内部的鼠标点击呢?我不知道如何接收它们。 “buttonUpFcn”怎么办?看不到其中之一。当我四处移动光标时,我看不出有什么办法来捕捉它们(除非我开始查询图形而不是矩形,但这会很麻烦,而且我认为非常复杂。)

感谢您的考虑。

约翰

【问题讨论】:

  • 如果你不是绝对需要轮换,imrect 会做你想做的。
  • @Jonas 将此作为答案,我会接受。 impoly 足够接近我的需要,这对我有用。

标签: user-interface matlab interactive


【解决方案1】:

如果你不是绝对需要轮换,IMRECT 会做你想做的事。此外,如果您需要能够绘制斜线,IMPOLY 可能会有所帮助,但您可能需要编写 POSITIONCONSTRAINFCN 以保证您绘制的是直角。

【讨论】:

  • 感谢您的帮助,这解决了我眼前的问题,并为我解决长期问题提供了一条更轻松的途径!
【解决方案2】:

一种方法是存储矩形左上角和右下角的位置,并使用这些位置来确定点击是在矩形内部还是外部。这些角将为您提供矩形的[xmin ymin][xmax ymax] 值,您只需将点击的位置与这些值进行比较,即可确定点击是在边框内还是在边框外。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多