Matlab之启用或禁用缩放或者按比例放大函数zoom

目录

一、zoom函数功能

二、详解

1.zoom on

2.zoom off

3.zoom out

4.zoom reset

5.zoom

6.zoom x/yon

7.zoom(factor) 

8.zoom(fig, option) 

9.h = zoom(figure_handle) 

三、示例

1.绘制一个图形并启用缩放模式

2.创建缩放模式对象并将缩放约束到 x 轴。使用圆点表示法设置属性。

3.创建四个坐标区作为子图,并通过为每个坐标区句柄设置不同的属性来设置不同的缩放样式:

4.为要触发的缩放模式对象创建 buttonDown 回调。

5.为要触发的缩放模式对象的 buttonDown 前和后事件创建回调。

6.通过对上下文菜单编码,用户可以通过右击来切换到平移模式。


一、zoom函数功能

启用禁用缩放或者按比例放大图像

二、详解

1.zoom on

zoom on %启用缩放模式。

在图窗中启用缩放模式时,如果在光标处于坐标区内时按下鼠标按键,将会放大或缩小鼠标下面的点。

缩放将会改变坐标区范围

2.zoom off

zoom off %禁用缩放模式。

从 R2018b 开始,默认情况下启用某些缩放交互,而不管缩放模式如何设置。

如果要禁用这些默认交互,请使用 disableDefaultInteractivity 函数。

3.zoom out

zoom out %将绘图恢复为其初始缩放设置。

4.zoom reset

zoom reset %将当前缩放设置记作初始缩放设置。

启用交互式 zoom 模式后,对 zoom out 的后续调用或双击都将使绘图恢复到此缩放级别。

5.zoom

禁用和启用缩放模式之间切换(恢复最近使用的缩放工具)。

6.zoom x/yon

zoom xon 和 zoom yon 分别为 x 和 y 轴设置 zoom on

7.zoom(factor) 

zoom(factor) 放大或缩小指定的缩放因子,而不影响交互式缩放模式。

大于 1 的值将按该数量放大,大于 0 且小于 1 的数将按 1/factor 缩小。

8.zoom(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);
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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞瑜·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值