Matlab 保持纵横比数字
在调整图形大小时,如何调整图像大小以保持宽度和高度之间的比率(F3/F4应保持不变)Matlab 保持纵横比数字,matlab,resize,position,figure,aspect-ratio,Matlab,Resize,Position,Figure,Aspect Ratio,在调整图形大小时,如何调整图像大小以保持宽度和高度之间的比率(F3/F4应保持不变) 您可以使用以下反馈功能实现您想要的: 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 de
您可以使用以下反馈功能实现您想要的:
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
另一种选择可能是使用,但这将改变绘图的纵横比,而不是窗口本身。是否要保持图像纵横比与调整其大小的图形窗口相同?否,图形窗口本身。这是一个GUI图形。您的意思是在程序中调整图形大小时,还是在用户手动调整图形大小时?在用户手动调整图形大小时。谢谢!onSizeChanged是我正在寻找的,但是有时候图形进入振荡状态,因为uicontrol具有标准化单位。
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