Matlab之启⽤或禁⽤缩放或者按⽐例放⼤函数zoom ⼀、zoom函数功能
启⽤或禁⽤缩放或者按⽐例放⼤图像
⼆、详解
< on
zoom on %启⽤缩放模式。
在图窗中启⽤缩放模式时,如果在光标处于坐标区内时按下⿏标按键,将会放⼤或缩⼩⿏标下⾯的点。
缩放将会改变坐标区范围。
< off
zoom off %禁⽤缩放模式。
从 R2018b 开始,默认情况下启⽤某些缩放交互,⽽不管缩放模式如何设置。
如果要禁⽤这些默认交互,请使⽤ disableDefaultInteractivity 函数。
< out
zoom out %将绘图恢复为其初始缩放设置。
< reset
zoom reset %将当前缩放设置记作初始缩放设置。
启⽤交互式 zoom 模式后,对 zoom out 的后续调⽤或双击都将使绘图恢复到此缩放级别。
<
在禁⽤和启⽤缩放模式之间切换(恢复最近使⽤的缩放⼯具)。
< x/yon
zoom xon 和 zoom yon 分别为 x 和 y 轴设置 zoom on。
<(factor)
zoom(factor) 放⼤或缩⼩指定的缩放因⼦,⽽不影响交互式缩放模式。
⼤于 1 的值将按该数量放⼤,⼤于 0 且⼩于 1 的数将按 1/factor 缩⼩。
<(fig, option)
zoom(fig, option) 使⽤此语法,可在当前图窗以外的图窗中指定上述任意选项。
9.h = zoom(figure_handle)
h = zoom(figure_handle) 返回图窗 figure_handle 的缩放模式对象,以⾃定义模式的⾏为。
三、⽰例
1.绘制⼀个图形并启⽤缩放模式
plot(1:10);
zoom on
% zoom in on the plot
2.创建缩放模式对象并将缩放约束到x轴。使⽤圆点表⽰法设置属性。
plot(1:10);
h = zoom;
h.Motion = 'horizontal';
h.Enable = 'on';
% zoom in on the plot in the horizontal direction.
3.创建四个坐标区作为⼦图,并通过为每个坐标区句柄设置不同的属性来设置不同的缩放样式:
ax1 = subplot(2,2,1);
plot(1:10);
h = zoom;
ax2 = subplot(2,2,2);
plot(rand(3));
setAllowAxesZoom(h,ax2,false);
ax3 = subplot(2,2,3);
plot(peaks);
用subplot函数
setAxesZoomMotion(h,ax3,'horizontal');
ax4 = subplot(2,2,4);
contour(peaks);
setAxesZoomMotion(h,ax4,'vertical');
% Zoom in on the plots
4.为要触发的缩放模式对象创建 buttonDown 回调。
将以下代码复制到⼀个新⽂件,执⾏代码并观察缩放⾏为。使⽤圆点表⽰法设置属性。
function demo
% Allow a line to have its own 'ButtonDownFcn' callback.
hLine = plot(rand(1,10));
hLine.ButtonDownFcn = 'disp(''This executes'')';
hLine.Tag = 'DoNotIgnore';
h = zoom;
h.ButtonDownFilter = @mycallback;
h.Enable = 'on';
% mouse click on the line
%
function [flag] = mycallback(obj,event_obj)
% If the tag of the object is 'DoNotIgnore', then return true.
objTag = obj.Tag;
if strcmpi(objTag,'DoNotIgnore')
flag = true;
else
flag = false;
end
5.为要触发的缩放模式对象的 buttonDown 前和后事件创建回调。将以下代码复制到⼀个新⽂件,执⾏代码并观察缩放⾏为。使⽤圆点表⽰法设置属性。
function demo
% Listen to zoom events
plot(1:10);
h = zoom;
h.ActionPreCallback = @myprecallback;
h.ActionPostCallback = @mypostcallback;
h.Enable = 'on';
%
function myprecallback(obj,evd)
disp('A zoom is about to occur.');
%
function mypostcallback(obj,evd)
newLim = evd.Axes.XLim;
msgbox(sprintf('The new X-Limits are [%.2f %.2f].',newLim));
6.通过对上下⽂菜单编码,⽤户可以通过右击来切换到平移模式。使⽤圆点表⽰法设置属性
figure
plot(magic(10))
hCMZ = uicontextmenu;
hZMenu = uimenu('Parent',hCMZ,'Label','Switch to pan',...
'Callback','pan(gcbf,''on'')');
hZoom = zoom(gcf);
hZoom.ContextMenu = hCMZ;
zoom('on')

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。