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

📄 pi_limptmove.m

📁 地震解释处理matlab工具箱
💻 M
字号:
function limptmove(action);
global SCALE_OPT NUMBER_OF_COLORS GRAY_PCT CLIP COLOR_MAP NOBRIGHTEN PICKS PICKCOLOR XAXISTOP ZOOM_VALUE ZOOM_LOCKS

delete(findobj(gcf,'type','line','tag','PICKMARKER'));
h=get(gcf,'userdata');
hlimbox=h(14);
limdat=get(hlimbox,'userdata');
st=get(gcf,'selectiontype');
if(strcmp(st,'alt'))
    % right click, creating menu
    axes1=findobj(gcf,'type','axes','tag','AXES1');
    if(ishandle(get(axes1,'userdata')));
        delete(get(axes1,'userdata'));
    end
    cmenu=uicontextmenu;
    set(gco,'uicontextmen',cmenu);
    m1=uimenu(cmenu,'label','Line Options','callback','plotimage(''mvmenuclose'')');
    m2=uimenu(cmenu,'label','Line Style','separator','on');
    m2x=uimenu(m2,'label','- (Solid line)','callback','plotimage(''limlnoptions'')','userdata',[1 1]);
    m2x=uimenu(m2,'label','-- (Segmented line)','callback','plotimage(''limlnoptions'')','userdata',[1 2]);
    m2x=uimenu(m2,'label','_. (Line dot)','callback','plotimage(''limlnoptions'')','userdata',[1 3]);
    m2x=uimenu(m2,'label',': (Dotted line)','callback','plotimage(''limlnoptions'')','userdata',[1 4]);
    m3=uimenu(cmenu,'label','Marker');
    m3x=uimenu(m3,'label','*','callback','plotimage(''limlnoptions'')','userdata',[2 1]);
    m3x=uimenu(m3,'label','x','callback','plotimage(''limlnoptions'')','userdata',[2 2]);
    m3x=uimenu(m3,'label','o','callback','plotimage(''limlnoptions'')','userdata',[2 3]);
    m3x=uimenu(m3,'label','+','callback','plotimage(''limlnoptions'')','userdata',[2 4]);
    m3x=uimenu(m3,'label','.','callback','plotimage(''limlnoptions'')','userdata',[2 5]);
    m4=uimenu(cmenu,'label','Color');
    m4x=uimenu(m4,'label','Red','callback','plotimage(''limlnoptions'')','userdata',[3 1]);
    m4x=uimenu(m4,'label','Green','callback','plotimage(''limlnoptions'')','userdata',[3 2]);
    m4x=uimenu(m4,'label','Blue','callback','plotimage(''limlnoptions'')','userdata',[3 3]);
    m4x=uimenu(m4,'label','Black','callback','plotimage(''limlnoptions'')','userdata',[3 4]);
    m4x=uimenu(m4,'label','Default','callback','plotimage(''limlnoptions'')','userdata',[3 5]);
    m5=uimenu(cmenu,'label','Spawn Options','separator','on');
    ttl=get(gca,'title');
    ttludat=get(ttl,'userdata');
    nm1=ttludat{3};
    if(strcmp(nm1,'Amp Spectrum'))
        m5x=uimenu(m5,'label','None Yet For Spectrums');
    else
        m5x=uimenu(m5,'label','Spawn New Figure','callback',@SpawnPlotImage,...
            'userdata',[]);
        m5x=uimenu(m5,'label','F-K Amp Spectrum','callback',@PI_limbox_transforms,...
            'userdata',[],'separator','on');
        m5x=uimenu(m5,'label','F-X Amp Spectrum','callback',@PI_limbox_transforms,...
            'userdata',[]);
    end
    m6=uimenu(cmenu,'label','Reset Data','callback','plotimage(''lmptresetmenu'')');
    slavefig=limdat{3};
    checkvis=get(slavefig,'visible');
    if(strcmp(checkvis,'on'))
        nn=2;
    else
        nn=1;
    end
    menstr={'Data Figure: ON' 'Data Figure: OFF'};
    m7=uimenu(cmenu,'label',menstr{nn},'callback','plotimage(''limnoptions'')',...
        'separator','on','callback','plotimage(''limlnfigurevis'')');
    set(axes1,'userdata',cmenu);
else
    if(~isempty(PICKS))
        for ii=1:size(PICKS,1)
            CheckFigure=PICKS{ii,1};
            if(CheckFigure==gcf)
                checkpics=findobj(gcf,'type','line','tag','PICKS');
                if(isempty(checkpics))
                    PICKS{ii,2}=[];
                    PICKS{ii,3}=[];
                    break
                end
                set(PICKS{ii,3},'erasemode','xor');
            end
        end
    end
    axes1=gca;
    % setting points and lines erase mode to xor
    lmlm=findobj(gcf,'type','uicontrol','tag','LIMITLINEMASTER');
    h=get(gcf,'userdata');
    hlimbox=h(14);
    limdat=get(hlimbox,'userdata');
    limpts=limdat{1};
    limlns=limdat{2};
    limcent=limdat{4};
    set(limlns,'erasemode','xor');
    set(limpts,'erasemode','xor');
    set(limcent,'erasemode','xor');
    set(gcf,'windowbuttonupfcn','plotimage(''limmoveend'')');
    if(strcmp(action,'limptmove'))
        set(gcf,'windowbuttonmotionfcn','plotimage(''limptmove2'')');
        % need to store line positions [top bottom left side right side]
        pts=cell(5,1);
        for ii=1:4
            xdat=get(limlns(ii),'xdata');
            ydat=get(limlns(ii),'ydata');
            tdat=[xdat ydat];
            pts{ii}=tdat;
        end
        pts{5}=get(gca,'currentpoint');
        set(axes1,'userdata',pts);
    elseif(strcmp(action,'limlnmove'))
        set(gcf,'windowbuttonmotionfcn','plotimage(''limlnmove2'')');
        pt=get(axes1,'currentpoint');
        set(axes1,'userdata',pt);
    elseif(strcmp(action,'limcentmove'))
        set(gcf,'windowbuttonmotionfcn',@PI_limcentmove2);
        pt=get(axes1,'currentpoint');
        set(axes1,'userdata',pt);
    end
    set(gcf,'windowbuttonupfcn','plotimage(''limmoveend'')');
end

⌨️ 快捷键说明

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