How to limit the movement of a rectangle?

1 visualización (últimos 30 días)
BoSeon Kang
BoSeon Kang el 14 de Nov. de 2019
Comentada: BoSeon Kang el 15 de Nov. de 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;

Respuesta aceptada

Stijn Haenen
Stijn Haenen el 14 de Nov. de 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 comentario
BoSeon Kang
BoSeon Kang el 15 de Nov. de 2019
I solved it like this.
hObject.Position(1) = eventdata.PreviousPosition(1);
Thank you for the answer.

Iniciar sesión para comentar.

Más respuestas (1)

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

Iniciar sesión para comentar.

Categorías

Más información sobre Images en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by