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.

Community Treasure Hunt

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

Start Hunting!

Translated by