²é¿´: 3710  |  »Ø¸´: 13
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û13´Î£¬×÷ÕßcurtonÔö¼Ó½ð±Ò 10 ¸ö

[×ÊÔ´] matlab¾Ö²¿·Å´ó

function [Hza,Hzr]=mmzoom(arg)

% Ó÷¨£º

% [Hza,Hzr] = MMZOOM ·µ»Ø´´½¨µÄ·Å´ó×ø±êϵºÍ·½·¨¿òµÄ¾ä±ú

% MMZOOM DRAG ʹÄÜ·Å´ó¿òµÄÍϷʦÄÜ

% MMZOOM RESET È¡Ïû·Å´ó¿òµÄÍϷʦÄÜ

% MMZOOM OFF ɾ³ý·Å´ó¿ò

% ³£ÓÃÓ÷¨£º»­ºÃͼƬºóÊäÈëmmzoom£¬È¦Í¼Æ¬·Å´ó£¬¿ÉÒÔÍ϶¯·Å´ó¿òµ½ÀíÏëλÖ㬵ã»÷figureµÄ·ÇÖ÷×ø±ê

% ÏµÇøÓòÈ·¶¨;»¹ÏëÍ϶¯£¬ÊäÈëmmzoom drag£»É¾³ý·Å´ó¿ò£¬ÊäÈëmmzoom offɾ³ý



if nargin==0%ÎÞÊäÈë²ÎÊý£¬ÔòΪÎÞ²ÎÊý

    arg = [];

end

if isempty(arg) %ÎÞ²ÎÊý±íʾ·Å´ó

    Hzoom = findobj(0,'Tag','MMZOOM'); % ÕÒ֮ǰµÄ·Å´ó´°¿Ú£¬Óеϰɾµô

    if ~isempty(Hzoom)  

        delete(Hzoom)

    end

   

    [xlim,ylim,prect] = getbox;% »ñµÃÒ»¸ö¾ØÐοò

   

    if ~isempty(prect) % ÇøÓò²»ÄÜΪ¿Õ

        Haxes = gca;

        Hzr = rectangle('Position',prect,...%»­¾ØÐοò

            'Linestyle',':',...              

            'Tag','MMZOOM');

      

        Hfig = gcf;

        Hzoom = copyobj(Haxes,Hfig); %¸´ÖÆÒ»¸ö×ø±êϵµ½µ±Ç°´°¿Ú

      

        OldUnits = get(Haxes,'Units');  %µÃµ½×ø±êϵµÄµ¥Î»

        set(Haxes,'Units','normalized') %ÉèÖÃ×ø±êϵµÄµ¥Î»

        Pvect = get(Haxes,'Position');

        set(Haxes,'Units',OldUnits)

      

        alpha = 1/3;   %·Å´ó´°¿ÚËõ·Å±ÈÀý

        beta = 98/100; %·Å´ó´°¿ÚÆ«ÒÆ

      

        Zwidth = alpha*Pvect(3);                 

        Zheight = alpha*Pvect(4);               

        Zleft = Pvect(1)+beta*Pvect(3)-Zwidth;   

        Zbottom = Pvect(2)+beta*Pvect(4)-Zheight;

      

        set(Hzoom,'units','Normalized',...            % make units normalized

            'Position',[Zleft Zbottom Zwidth Zheight],...% axes position

            'Xlim',xlim,'Ylim',ylim,...                % axis data limits

            'Box','on',...                             % axis box on

            'Xgrid','off','Ygrid','off',...            % grid lines off

            'FontUnits','points',...

            'FontSize',8,...                           % shrink font size

            'ButtonDownFcn','selectmoveresize',...      % ÉèÖ÷Ŵó×ø±êϵ¿ÉÍ϶¯ºÍËõ·Å

            'Tag','MMZOOM',...                         % tag zoomed axes

            'UserData',Haxes)                          % store original axes

      

        [Htx,Hty,Htt] = getn(Hzoom,'Xlabel','Ylabel','Title');%µÃµ½¶à¸öÊôÐԵľä±ú

        set([Htx,Hty,Htt],'String','')%ÉèÖÃÏàÓ¦µÄ¾ä±ústringÊôÐÔΪ¿Õ

      

        set(Haxes,'DeleteFcn',...           % ÉèÖÃÔ­×ø±êϵµÄɾ³ýº¯Êý

            'delete(findobj(0,''Type'',''axes'',''Tag'',''MMZOOM''))')

      

        Hchild = findobj(Hfig,'type','axes');

        Hchild(Hchild==Hzoom) = [];         

      

        set(Hfig,'Children',[Hzoom;Hchild],...%½«·Å´óµÄ×ø±êϵ·ÅÔÚÕ»¶¥

            'CurrentAxes',Haxes,...    %Ê¹Ô­×ø±êϵΪµ±Ç°×ø±êϵ£¬Èç¹ûÔÙ»­Í¼½«ÔÚµ±Ç°×ø±êϵ»æÍ¼

            'ButtonDownFcn','mmzoom reset')    %µã»÷figure¿Õ°×ÇøÓòÏìÓ¦´Ëº¯Êý

      

        if nargout>=1

            Hza = Hzoom;

        end

    end

   

elseif strncmpi(arg,'d',1) %ʹÄÜÍ϶¯·Å´ó¿ò

   

    Hzoom = findobj(0,'Type','axes','Tag','MMZOOM');

    if ~isempty(Hzoom)

        set(Hzoom,'ButtonDownFcn','selectmoveresize')%ÉèÖ÷Ŵó¿ò¿ÉÍ϶¯

    end

   

elseif strncmpi(arg,'r',1) %ʹ·Å´ó¿ò²»ÄÜÔÙ±»Í϶¯

   

    Hzoom = findobj(0,'Type','axes','Tag','MMZOOM');

    if ~isempty(Hzoom)

        [Hfig,Haxes] = getn(Hzoom,'Parent','UserData');

        set(Hzoom,'ButtonDownFcn','','Selected','off')

        set(Hfig,'CurrentAxes',Haxes)               

    end

   

elseif strncmpi(arg,'o',1)  %ɾ³ý·Å´ó¿ò

   

    Hzoom = findobj(0,'Tag','MMZOOM');

    if ~isempty(Hzoom)

        delete(Hzoom)

    end

else

    error('Unknown Input Argument.')

end

%%%%%%%%%%%%%%%%

function [xbox,ybox,prect]=getbox



if waitforbuttonpress %µÈ´ýÊó±ê°´ÏÂ,°´ÏÂÊó±ê·µ»ØFalse£¬°´Ï°´¼ü·µ»ØTrue

    return

end



Hf = gcf;      % µÃµ½Êó±êµã»÷µÄ´°¿Ú

Ha = gca(Hf);  % µÃµ½Êó±êµã»÷µÄ×ø±êϵ



AxesPt = get(Ha,'CurrentPoint'); % µÃµ½µÚÒ»¸öÊó±êµã»÷Êý¾ÝµãÔÚ×ø±êϵÖеÄλÖÃ

FigPt = get(Hf,'CurrentPoint');  % ×ø±êÖáµÄCurrentPointֵΪһ¸ö2*3µÄ¾ØÕ󣬵ÚÒ»ÐÐΪÀë¹Û²ìÕß×î

%½üµÄµãµÄÈýÎ¬×ø±ê£¬µÚ2ÐÐΪÀë¹Û²ìÕß×îÔ¶µÄµãµÄÈýÎ¬×ø±ê¡£Ä¬ÈϵÄÊÓ½ÇView = 90¶ÈµÄÇé¿öÏ£¬ÕâÁ½ÐеÄ

%xºÍy×ø±êÊÇÏàͬµÄ¡£Ò»°ãÇé¿öÏ£¬Ö»ÐèҪȡposµÚ1ÐеÄǰÁ½¸öÔªËØ£¬µÚ3¸öÔªËØÎªzÖá×ø±ê£¬Ò»°ã²»Óá£



rbbox([FigPt 0 0],FigPt) % ÓÃÊó±êȦ³ö¾ØÐοò£¬Êó±êËÉ¿ªÊ±·µ»Ø



AxesPt = [AxesPt;get(Ha,'CurrentPoint')];%×éºÏÆðʼµãºÍÖÕÖ¹µã



[Xlim,Ylim] = getn(Ha,'Xlim','Ylim');%µÃµ½Ò»¸ö¶ÔÏóµÄ¶à¸öÊôÐԵľä±ú



xbox = [min(AxesPt(:,1)) max(AxesPt(:,1))]; %µÃµ½Ëù»­¾ØÐοòÁ½½ÇµãµÄºá×ø±ê

xbox = [max(xbox(1),Xlim(1)) min(xbox(2),Xlim(2))]; %µã²»ÄÜÔڱ߽çÍâ



ybox = [min(AxesPt(:,2)) max(AxesPt(:,2))];

ybox = [max(ybox(1),Ylim(1)) min(ybox(2),Ylim(2))];



prect = [xbox(1) ybox(1) diff(xbox) diff(ybox)];



%%%%%%%%%%%%%%%%

function varargout=getn(H,varargin)%Ò»°ãvararginºÍvarargoutÊÇÒþ²ØµÄ£¬µ«¿ÉÏñÕâÀï×÷Ϊ´«Èë²ÎÊýÓã¬

%×¢ÒâΪԪ°ûÀàÐÍ

% µÃµ½Ò»¸ö¶ÔÏóµÄ¶à¸öÊôÐÔ



if max(size(H))~=1 || ~ishandle(H)

   error('Scalar Object Handle Required.')

end

varargout=get(H,varargin);



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



ѧµ½µÄ֪ʶ£º

findobj

rectangle

copyobj

'ButtonDownFcn','selectmoveresize'

'CurrentAxes'

'Children'

waitforbuttonpress

%%%%%%%%%%%%%%%%matlabʾÀý£º

w = waitforbuttonpress;
if w == 0
    disp('Button click')
else
    disp('Key press')
end
%%%%%%%%%%%%%%%%

'CurrentPoint'

rbbox

%%%%%%%%%%%%%%%%matlabʾÀý£º

k = waitforbuttonpress;
point1 = get(gca,'CurrentPoint');    % button down detected
finalRect = rbbox;                   % return figure units
point2 = get(gca,'CurrentPoint');    % button up detected
point1 = point1(1,1:2);              % extract x and y
point2 = point2(1,1:2);
p1 = min(point1,point2);             % calculate locations
offset = abs(point1-point2);         % and dimensions
x = [p1(1) p1(1)+offset(1) p1(1)+offset(1) p1(1) p1(1)];
y = [p1(2) p1(2) p1(2)+offset(2) p1(2)+offset(2) p1(2)];
hold on
axis manual
plot(x,y)                            % redraw in dataspace units
%%%%%%%%%%%%%%%%



varargin¡¢varargoutmatlab¾Ö²¿·Å´ó
6163bdeb486111e0b58ae&690.jpg
»Ø¸´´ËÂ¥

» ±¾Ìû¸½¼þ×ÊÔ´Áбí

  • »¶Ó­¼à¶½ºÍ·´À¡£ºÐ¡Ä¾³æ½öÌṩ½»Á÷ƽ̨£¬²»¶Ô¸ÃÄÚÈݸºÔð¡£
    ±¾ÄÚÈÝÓÉÓû§×ÔÖ÷·¢²¼£¬Èç¹ûÆäÄÚÈÝÉæ¼°µ½ÖªÊ¶²úȨÎÊÌ⣬ÆäÔðÈÎÔÚÓÚÓû§±¾ÈË£¬Èç¶Ô°æÈ¨ÓÐÒìÒ飬ÇëÁªÏµÓÊÏ䣺xiaomuchong@tal.com
  • ¸½¼þ 1 : ´úÂë.txt
  • 2013-12-19 11:41:45, 6.23 K

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

¹ú×Ô¿Æ»ù½ð±êÊé 9s9s

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

borriello

гæ (³õÈëÎÄ̳)


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

·Ç³£ÊµÓã¬Ð»Ð»·ÖÏí
11Â¥2016-08-19 15:52:28
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÑÅ¿ÍÑŸ÷²¼É­

гæ (³õÈëÎÄ̳)


¡ï¡ï¡ï ÈýÐǼ¶,Ö§³Ö¹ÄÀø

ÓÐһЩ´íÎ󣬱ÈÈçðºÅû¼Ó¡£¡£¡£
14Â¥2017-05-05 11:40:56
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¼òµ¥»Ø¸´
Dododoo...2Â¥
2014-01-19 11:13   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
osd18883Â¥
2015-02-02 04:52   »Ø¸´  
ÈýÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
w_yx11114Â¥
2015-03-31 16:52   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
masterzy5Â¥
2015-06-22 09:12   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
aseaA6Â¥
2016-02-03 04:30   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
2016-02-12 23:11   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
5242334538Â¥
2016-03-13 16:56   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
x7c8h59Â¥
2016-03-24 12:37   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
herolions10Â¥
2016-08-09 10:38   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
qiuzhichang12Â¥
2017-01-19 16:09   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
2017-03-21 17:14   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ curton µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +7 angus9576 2026-08-25 7/350 2026-08-25 15:50 by Weed114114
[»ù½ðÉêÇë] ½ñÈÕ²»·Å°ñ£¿Íø´«¹ú×ÔȻԤ¼Æ 8 Ô 27 Èտɲé½á¹û +17 ҽѧÀÏÄк¢ 2026-08-20 22/1100 2026-08-25 15:36 by ҽѧÀÏÄк¢
[»ù½ðÉêÇë] ijЩ»ú¹¹£¬ÒÔЧÂʵÍΪÈÙ£¬ÒÔЧÂʵÍ×÷Ϊ´æÔڸР+8 yuleib84 2026-08-25 9/450 2026-08-25 15:23 by Weed114114
[»ù½ðÉêÇë] ·Å°ñǰµÄ²»µ­¶¨ 20+4 snowwithsea 2026-08-19 18/900 2026-08-25 14:50 by Weed114114
[»ù½ðÉêÇë] ʲôʱºò¿ª½±£¿ +12 CrisMessi 2026-08-18 13/650 2026-08-25 14:40 by ZJTJZ
[»ù½ðÉêÇë] ûÓÐÈκÎÏûÏ¢-ÊDz»ÊǾÍÁ¹ÁË +9 ͼÀ²Í¼À² 2026-08-24 10/500 2026-08-25 11:59 by ÄϺ£Ð¡¸ç
[»ù½ðÉêÇë] ÈËÆø²»ÐÐÁË +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by ¹Â¶ÀµÄÓ¢ÐÛ6
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»º¯ÆÀ·Ñµ½ÕË +19 ÑòÑü°å 2026-08-21 22/1100 2026-08-25 10:38 by popular289
[»ù½ðÉêÇë] ·¶½øÖоÙÒ»ÎĵÄÖÐÐÄ˼Ïë +7 Ñ׻ƹóëÐ 2026-08-22 8/400 2026-08-25 08:48 by ZJTJZ
[»ù½ðÉêÇë] Ö»ÓÐÿÄêÕâÖÖʱºòÀ´¹ä¹äСľ³æ +25 yaoyewhu2008 2026-08-20 27/1350 2026-08-25 08:01 by Equinoxhua
[»ù½ðÉêÇë] Ã÷ÌìÓ¦¸Ã¿É²éÁË£¡£¿ +5 chengyan1220 2026-08-23 5/250 2026-08-24 23:28 by ÎÒ4´ó°×²Ë
[»ù½ðÉêÇë] ÄÜ·ñÍ˳ö²ÎÓëµÄÃæÉÏÏîÄ¿½â³ýÏÞÏî +21 koalala 2026-08-24 24/1200 2026-08-24 19:25 by ¼ÒÓëÔ¶·½
[»ù½ðÉêÇë] filecode£¬4¸öjtjcÁË +14 ziyangfang 2026-08-19 17/850 2026-08-24 18:37 by ¹þ¹þ¸ò£¿
[»ù½ðÉêÇë] ÈÃÎÒÖÐÒ»¸öÃæÉϰɣ¡ +13 ´óƼ1987 2026-08-20 16/800 2026-08-24 10:23 by ̫ɵÁË
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +18 ÎÒ4´ó°×²Ë 2026-08-20 19/950 2026-08-24 09:47 by ¿­¶÷¹ãÊ¢´ß»¯·ÖÎ
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ½ñÌì·Å°ñÂ𣿠+15 ²¼²¼ºÍÒ»¶þ 2026-08-19 16/800 2026-08-23 09:55 by ÕÅ´ºÉú
[»ù½ðÉêÇë] ¿´À´½ñÌì²»»á·Å°ñÁË£¿ +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[»ù½ðÉêÇë] ʱ¼ä´ÁÓÖ±äÁË +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by ×Ïɼ´¼
[»ù½ðÉêÇë] »ù½ð°¡»ù½ð +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û