保持宽高比数字

时间:2017-09-29 10:36:09

标签: matlab resize position figure aspect-ratio

如何在调整数字大小时保持宽度和高度之间的比例调整图像大小(F3 / F4应保持不变)?

f=figure();
F1=300;F2=300;F3=600;F4=300;
f.Position=[F1 F2 F3 F4];

1 个答案:

答案 0 :(得分:1)

您可以使用以下反馈功能来实现您的目标:

set(f,'SizeChangedFcn',@(src, callbackdata) onSizeChanged(src, F3, F4));

function onSizeChanged(src, F3, F4)
   pos = src.Position;
   scale = (pos(3)/F3 + pos(4)/F4)/2; % estimate the desired scale factor
   % scale = min(pos(3)/F3, pos(4)/F4); % alternative
   pos(3) = scale*F3;
   pos(4) = scale*F4;
   src.Position = pos;
end

替代方案可能是使用pbaspect,但这会改变绘图的宽高比,而不是窗口本身。