⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pi_limmoveend.m

📁 基于matlab的反演程序,用于地球物理勘探中射线追踪及偏移成像程序.
💻 M
字号:
function limmoveend();
% this routine occures at the end of moving the limit lines.  It ensure
% that the limit box parts are reset to the original order.  This section
% also forces the limit lines to be 5% away from the edge of the image
% data.
global PICKS
if(~isempty(PICKS))
    for ii=1:size(PICKS,1)
        CheckFigure=PICKS{ii,1};
        if(CheckFigure==gcf)
            set(PICKS{ii,3},'erasemode','normal');
        end
    end
end
h=get(gcf,'userdata');
hi=h(5); % Image
hlimbox=h(14);
limdata=get(hlimbox,'userdata');
% setting points and lines erase mode to normal
limlns=limdata{2};
limpts=limdata{1};
limcent=limdata{4};
set(limlns,'erasemode','normal');
set(limpts,'erasemode','normal','visible','on');
set(limcent,'erasemode','normal');
set(gcf,'windowbuttonupfcn',[]);
set(gcf,'windowbuttonmotionfcn',[]);
selboxinit('plotimage(''zoom'')',1);
h=get(gcf,'userdata');
hlimbox=h(14);
limdat=get(hlimbox,'userdata');
limptdat=limdat{1};
limlndat=limdat{2};
findfig=limdat{3};
% need to stop axis from resizing
parentaxis=get(limptdat(1),'parent');
xdat=get(parentaxis,'xlim');
ydat=get(parentaxis,'ylim');
% [top bottom left right]
ximdat=get(hi,'xdata');
yimdat=get(hi,'ydata');
tpnum=get(limlndat(1),'ydata');
btnum=get(limlndat(2),'ydata');
dy=sort([ydat(1) ydat(2)]);
dy=(dy(2)-dy(1))/120;
hornum=sort([yimdat(1)+dy tpnum(1) btnum(2) yimdat(end)-dy]);
hornum=[hornum(2) hornum(3)];
lfnum=get(limlndat(3),'xdata');
rtnum=get(limlndat(4),'xdata');
dx=sort([xdat(1) xdat(2)]);
dx=(dx(2)-dx(1))/120;
vernum=sort([ximdat(1)+dx lfnum(1) rtnum(1) ximdat(end)-dx]);
vernum=[vernum(2) vernum(3)];
mdat=[hornum vernum];   
mlninfo=get(findfig,'userdata');
ddat={'ydata' 'ydata' 'xdata' 'xdata'};
for ii=1:4
    set(mlninfo(ii),'string',num2str(mdat(ii)));
end
checkvis=mlninfo(5);
% setting lines back
set(limlndat(1),'ydata',[mdat(2) mdat(2)],'xdata',[mdat(3) mdat(4)]);
set(limlndat(2),'ydata',[mdat(1) mdat(1)],'xdata',[mdat(3) mdat(4)]);
set(limlndat(3),'ydata',[mdat(1) mdat(2)],'xdata',[mdat(3) mdat(3)]);
set(limlndat(4),'ydata',[mdat(1) mdat(2)],'xdata',[mdat(4) mdat(4)]);
% setting points back
set(limptdat(1),'ydata',mdat(2),'xdata',mdat(3));
set(limptdat(2),'ydata',mdat(2),'xdata',mdat(4));
set(limptdat(3),'ydata',mdat(1),'xdata',mdat(3));
set(limptdat(4),'ydata',mdat(1),'xdata',mdat(4));
set(parentaxis,'ylim',ydat,'xlim',xdat);
% setting center line back (if it needs to go back)
set(limcent,'ydata',(mdat(2)-mdat(1))/2+mdat(1),'xdata',(mdat(4)-mdat(3))/2+mdat(3));
if(get(checkvis,'value')==2)
    % measurement data figure can be made visible
    set(findfig,'visible','on');
else
    % measurement data figure will not be made visible
end
hgcf=gcf;
plotimage('limboxrescale');
set(0,'currentfigure',hgcf);
h=get(gcf,'userdata');
hzoompick=h(9);
value=get(hzoompick,'value');
delete(findobj(gcf,'type','line','tag','PICKMARKER'));
delete(findobj(gcf,'type','text','tag','PICKTEXT'));
switch value
case 1
    selboxinit('plotimage(''zoom'')',1);
    set(gcf,'name','Seismic Image Plot, Simplezooming installed (Use MB1)');
case 2
    drawlineinit('plotimage(''pick'')');
    set(gcf,'name','Seismic Image Plot, Picking resummed (Use MB1)');
case 3
    drawlineinit('plotimage(''pick'')');
    set(gcf,'name','Seismic Image Plot, Picking new (Use MB1)');
    set(hzoompick,'userdata',[]);
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -