Adding line change the size of the image

4 views (last 30 days)
Aurélie B
Aurélie B on 6 May 2021
Commented: Aurélie B on 6 May 2021
Hi!
I am currently working on adding lines above a image in App Designer, but when I add these lines, the image changes size and I don't want it to. Can someone help me please?
M is a 4D matrix(160,130,26,14)
profondeur, hauteur, largeur, temps are sliders, and angle 1,5 are knob
I=M(:,:,floor(profondeur),floor(temps));
affichagelignex(app);
J=imresize(I,[160 130]);
imshow(J,[],'Parent',app.UIAxes);
function affichagelignex(app)
profondeur = app.zaxegauchedroiteSlider.Value;
hauteur = app.yaxeavantarrireSlider.Value;
largeur = app.xaxepiedstteSlider.Value;
angle1 = app.AngleXYKnob.Value;
angle5 = app.AngleXZKnob.Value;
persistent h1
persistent h5
if (isempty(h1)&& isempty(h5))
h1=line(app.UIAxes,[0 130],[largeur largeur],'Color','green');
h5=line(app.UIAxes3,[0 26],[largeur largeur],'Color','green');
else
h1=line(app.UIAxes,[0 130],[largeur-hauteur*tand(angle1) largeur+(130-hauteur)*tand(angle1)],'Color','green');
h5=line(app.UIAxes3,[0 26],[largeur-profondeur*tand(angle5) largeur+(26-profondeur)*tand(angle5)],'Color','green');
end

Answers (1)

Chad Greene
Chad Greene on 6 May 2021
Can you get the axis limits before plotting the lines, and then set the axis back to those limits afterwards? Something like this:
ax = axis; % GET THE AXIS LIMITS
if (isempty(h1)&& isempty(h5))
h1=line(app.UIAxes,[0 130],[largeur largeur],'Color','green');
h5=line(app.UIAxes3,[0 26],[largeur largeur],'Color','green');
else
h1=line(app.UIAxes,[0 130],[largeur-hauteur*tand(angle1) largeur+(130-hauteur)*tand(angle1)],'Color','green');
h5=line(app.UIAxes3,[0 26],[largeur-profondeur*tand(angle5) largeur+(26-profondeur)*tand(angle5)],'Color','green');
end
axis(ax) % SET THE AXIS LIMITS
  10 Comments
Aurélie B
Aurélie B on 6 May 2021
Thank you so much for helping me :)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!