Интерактивное манипулирование прямоугольником на фигуре Matlab - PullRequest
3 голосов
/ 21 сентября 2011

Я хотел бы нарисовать и манипулировать прямоугольником на фигуре Matlab.Под манипуляциями я имею в виду, что хочу перетаскивать, вращать, изменять размер (изменять длину сторон) прямоугольника «интуитивными» щелчками мыши.

Я не нашел ни одного встроенного механизма для этого.(Редактор свойств? Или функция Matlab? Или обмен файлами Matlab?) Может быть, я не могу хорошо гуглить.

Итак, чтобы написать свой собственный, мне кажется, что buttonDownFcn в функции прямоугольника являетсяначать для этого.То есть я могу использовать это для прослушивания щелчков мышью на самом прямоугольнике, но как насчет щелчков мышью внутри прямоугольника?Я не могу понять, как их получить.Как насчет "buttonUpFcn" не вижу ни одного из них.Что касается того, когда я перемещаю курсор, я не вижу способа захватить их (если только я не начну запрашивать фигуру вместо прямоугольника, но это станет большой проблемой, и я думаю, что это будет очень сложно.)

Спасибо за ваше внимание.

Джон

Ответы [ 2 ]

1 голос
/ 22 сентября 2011

Если вам абсолютно не нужно вращение, IMRECT будет делать то, что вы хотите.Кроме того, если вам нужно уметь рисовать наклонные линии, IMPOLY может оказаться полезным, хотя вам может потребоваться написать POSITIONCONSTRAINFCN , чтобы гарантировать, что вы рисуете под прямым углом.

0 голосов
/ 22 сентября 2011

Один из способов сделать это - сохранить местоположение левого верхнего и нижнего правого углов прямоугольника и использовать их, чтобы определить, находятся ли щелчки внутри или снаружи прямоугольника. Эти углы будут давать вам значения [xmin ymin] и [xmax ymax] прямоугольника, и вы можете просто сравнить местоположение щелчка с этими значениями, чтобы определить, находится ли щелчок внутри или за пределами границ.

...