How to limit the movement of a rectangle?

1 vue (au cours des 30 derniers jours)
BoSeon Kang
BoSeon Kang le 14 Nov 2019
Commenté : BoSeon Kang le 15 Nov 2019
I use RectangleMovingEvent.
But I want to move the rectangle only vertically.
So I changed the values of PreviousPosition and CurrentPosition, but they are the same.
How do I limit the movement of the rectangle ??
roi = drawrectangle('Position',p ,'Color',[1 0 0]);
addlistener(roi, 'MovingROI', @(a, b)roi_moved(a, b, handles));
function roi_moved(hObject, eventdata, handles)
p = hObject.Position;

Réponse acceptée

Stijn Haenen
Stijn Haenen le 14 Nov 2019
maybe this will work:
roi = drawrectangle('Position',p ,'Color',[1 0 0]);
t=0;
while t<1
pause(0.15);pos=get(roi,'position');
set(roi,'position',[p(1) pos(2) p(3) p(4)])
t=t+0.01;
end
  1 commentaire
BoSeon Kang
BoSeon Kang le 15 Nov 2019
I solved it like this.
hObject.Position(1) = eventdata.PreviousPosition(1);
Thank you for the answer.

Connectez-vous pour commenter.

Plus de réponses (1)

Stijn Haenen
Stijn Haenen le 14 Nov 2019
Maybe you can use the function:
get(roi,'position')
But i'm not sure what you want.
  1 commentaire
BoSeon Kang
BoSeon Kang le 14 Nov 2019
I want to prevent the user from dragging the rectangle horizontally.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Images dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by