【问题标题】:Keep aspect ratio figure保持纵横比图
【发布时间】:2018-03-11 06:04:06
【问题描述】:

在调整图形大小时如何调整图像大小保持宽高比(F3/F4应该保持不变)?

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

【问题讨论】:

  • 您是否要保持图像纵横比与其所在的图形窗口大小相同?
  • 不,图形窗口本身。这是一个 GUI 图。
  • 你是指在程序中调整图形大小还是用户手动调整大小
  • 用户手动调整大小时。

标签: matlab resize position figure aspect-ratio


【解决方案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,但这会改变绘图的纵横比,而不是窗口本身。

【讨论】:

  • 谢谢! onSizeChanged 是我一直在寻找的,但有时由于 uicontrols 具有标准化单位,该数字会进入振荡状态。
猜你喜欢
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2018-04-02
  • 1970-01-01
  • 2013-03-04
  • 2016-12-20
  • 1970-01-01
  • 2017-08-31
相关资源
最近更新 更多