±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 3536  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 288Çóµ÷¼Á +9 ûÓдð°¸_ 2026-04-05 9/450 2026-04-06 22:45 by chenzhimin
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤×¨Ë¶329 Çóµ÷¼Á +11 ¶îcc 2026-04-06 11/550 2026-04-06 22:33 by chenzhimin
[¿¼ÑÐ] Çóµ÷¼Á +5 ÐܶþÏëÉϰ¶ 2026-04-06 5/250 2026-04-06 22:27 by chenzhimin
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉúÎïÓëÒ½Ò©£¬296·Ö£¬Çóµ÷¼Á +11 66¹ 2026-04-03 13/650 2026-04-06 21:45 by 52305043001
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí³µÁ¾×¨Ë¶×Ü·Ö 281 Çóµ÷¼Á +3 Éϰ¶Ñо¿Éú. 2026-04-02 3/150 2026-04-06 16:46 by СÔ¶ùѽѽ
[¿¼ÑÐ] Ò»Ö¾Ô¸°²»Õij211 0703»¯Ñ§×Ü·Ö339Çóµ÷¼Á +7 Íí·ç²»Íí 2026-04-04 7/350 2026-04-06 14:06 by houyaoxu
[¿¼ÑÐ] 0854Çóµ÷¼Á +4 assdll 2026-04-05 4/200 2026-04-06 12:29 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] »¯Ñ§µ÷¼ÁÇóÖú +8 LULONG1 2026-04-03 8/400 2026-04-06 10:26 by dongzh2009
[¿¼ÑÐ] Çóµ÷¼Áµ½0856²ÄÁϹ¤³Ì +3 ³Ì9915 2026-04-05 3/150 2026-04-05 18:15 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 298Çóµ÷¼Á +3 manman511 2026-04-05 3/150 2026-04-05 18:09 by kk112233
[¿¼ÑÐ] 295Çóµ÷¼Á +8 FZAC123 2026-04-03 8/400 2026-04-05 17:46 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 313Çóµ÷¼Á +5 º£ÈÕº£ÈÕ 2026-04-04 7/350 2026-04-05 13:58 by imissbao
[¿¼ÑÐ] 11408,335·Ö£¬±¾¿Æ211£¬Çóµ÷¼Á£¬¿Éתרҵ +5 öùÀæ´óöùÓã 2026-04-03 5/250 2026-04-04 22:49 by chongya
[¿¼ÑÐ] 085601£¬Ò»Ö¾Ô¸Ïôó334¸´ÊÔ±»Ë¢Çóµ÷¼Á +13 ÔøÑöÖ® 2026-04-03 15/750 2026-04-04 20:13 by dongzh2009
[¿¼ÑÐ] 302Çóµ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶´óѧ +8 С½­Ð¡½­½­½­ 2026-04-02 8/400 2026-04-04 19:50 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 293·ÖÇóµ÷¼Á£¬ÍâÓïΪ¶íÓï +6 ¼ÓÒ»Ò»¾Å 2026-03-31 6/300 2026-04-04 14:57 by ´ÏÃ÷µÄ´óËÉÊó
[¿¼ÑÐ] Çó²ÄÁϵ÷¼Á£¬Ò»Ö¾Ô¸Ö£ÖÝ´óѧ289·Ö +15 ˶ÐǸ° 2026-04-03 15/750 2026-04-04 01:01 by userper
[¿¼ÑÐ] 338Çóµ÷¼Á +4 zzz£¬£¬r 2026-04-03 4/200 2026-04-03 16:39 by lijunpoly
[¿¼ÑÐ] »¯Ñ§070300-×Ü·Ö378-Çóµ÷¼Á +5 ŲÒÎ×ÓµÄÅÝÅÝÌÇ 2026-04-02 5/250 2026-04-02 22:20 by ZXlzxl0425
[¿¼ÑÐ] ²ÄÁÏ340·Öµ÷¼Á +7 ÏÄÒ¹Íí·ç_long 2026-04-02 9/450 2026-04-02 21:20 by dongzh2009
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û