我想在matlab图上绘制和操纵一个矩形。通过操作,我的意思是我想通过“直观”鼠标点击来拖动,旋转,调整矩形(改变边长)。
我没有找到任何内置机制来执行此操作。 (属性编辑器?或matlab函数?还是matlab文件交换?)也许我不能谷歌好。
所以,为了自己写,我觉得像矩形函数上的buttonDownFcn就是这样的开始。也就是说,我可以使用它来听取矩形本身的鼠标点击,但是矩形内部的鼠标点击怎么办?我无法弄清楚如何接收它们。怎么样的“buttonUpFcn”没有看到其中之一。当我移动光标时,我看不到捕获它们的方法(除非我开始查询图形而不是矩形,但这会变得非常麻烦,我认为这非常复杂。)
感谢您的考虑。
约翰
答案 0 :(得分:1)
如果你不是绝对需要轮换,IMRECT会做你想要的。此外,如果您需要能够绘制斜线IMPOLY,可能会有所帮助,但您可能需要编写POSITIONCONSTRAINFCN以确保您绘制正确的角度。
答案 1 :(得分:0)
执行此操作的一种方法是存储左上角和右下角矩形角的位置,并使用这些角确定点击是在矩形内部还是外部。这些角将为您提供矩形的[xmin ymin]
和[xmax ymax]
值,您只需将点击的位置与这些值进行比较,即可确定点击是在边框内还是在边框外。