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

📄 maingui.m

📁 这个东西是我在网上下的
💻 M
📖 第 1 页 / 共 4 页
字号:
     delete(DI);
     msgbox('参数配置错误,请检查!','错误','error','modal');
end

%------------------------------------------------------------------
function stop_callback(hobject,eventdata,handles)
% 停止或继续仿真。
try
    load iconh fcontinue fstop;
catch
    return
end
fi=handles;
MS=findobj(gcf,'tag','stop');%menu continue/stop
switch get(MS,'userdata')
   case 1,        
       set(MS,'userdata',0);       
       try
         TS=findobj(fi,'tag','t_stop');%toolbar continue/stop  
         set(TS,'TooltipString','继续','cdata',fcontinue);
       end
       uiwait(fi)
   case 0,
       set(MS,'userdata',1);
       try
         TS=findobj(fi,'tag','t_stop');%toolbar continue/stop 
         set(TS,'TooltipString','暂停','cdata',fstop);
       end
       uiresume(fi)
   end
%--------------------------------------------------------------------------
function clear_callback(hobject,eventdata,handles)
setappdata(handles,'over',1);
set(findobj('tag','start'),'enable','on');

%--------------------------------------------------------------------------
function grid_callback(hobject,eventdata,handles)
fi=handles{1};
ax=handles{2};
gr=get(hobject,'userdata');
if gr
    set(hobject,'userdata',0);
    set(ax,'xgrid','off','ygrid','off');
else
    set(hobject,'userdata',1);
    set(ax,'xgrid','on','ygrid','on');
end
%--------------------------------------------------------------------------
function axislimit(hobject,eventdata,handles)
fi=handles(1);
cax=get(fi,'currentaxes');
xl=get(cax,'xlim');
yl=get(cax,'ylim');
prompt={'x轴:','y轴:'};
dlg_title='SSSSSSSSSSSS';
num_lines=[1 1]';% 每一输入框的行数。
def={num2str(xl),num2str(yl)};% 每一输入框的默认值。
answer=h_inputdlg(prompt,dlg_title,num_lines,def);
if isempty(answer)
    return
end
xlim=str2num(answer{1});
if ~isempty(xlim)
    set(cax,'xlim',xlim);
end 
ylim=str2num(answer{2});
if ~isempty(ylim)
    set(cax,'ylim',ylim);
end
%--------------------------------------------------------------------------
function axisauto(hobject,eventdata,handles)
fi=handles(1);
cax=get(fi,'currentaxes');
set(cax,'xlimmode','auto');
set(cax,'ylimmode','auto');

%-------------------------------------------------------------------------
function trajshowing(hobject,eventdata,handles)
DI=waitdlg('WWWWWWWWWWWWWWWWWWWWait...');
tf=findobj('tag','trajfig');
if ishandle(tf)
    figure(tf)
    return
end
    
FI=handles{1};
me=handles{2};
tmp=get(me(1),'userdata');
if(length(tmp)~=10)
    [tacan_control_h,tacan_control_la,tacan_control_phi,flir_control_h,flir_control_la,flir_control_phi,index,period,tm,trajdata,tarpos]=deal(tmp{:});
else
    [tacan_control_h,tacan_control_la,tacan_control_phi,flir_control_h,flir_control_la,flir_control_phi,index,period,tm,trajdata]=deal(tmp{:});
end    
i=1;jj=1;jump=0;
tacan_tdistance=linspace(1e6,1e6,length(tacan_control_phi));
flir_tdistance=linspace(1e6,1e6,length(flir_control_phi));
tacan_ttime=linspace(0,0,length(tacan_control_phi));
flir_ttime=linspace(0,0,length(flir_control_phi));
while (i+jump<=length(trajdata))
    seg=find(sort([index i])==i)-1;
    pe=period(seg(end));
    jump=floor(.1/pe);
    phi(jj)=trajdata{2,i+jump}(1);
    la(jj)=trajdata{2,i+jump}(2);
    h(jj)=trajdata{2,i+jump}(3);
    time(jj)=trajdata{1,i+jump};
    for ic=1:length(tacan_control_la)
        d2=(phi(jj)-tacan_control_phi(ic))^2+(la(jj)-tacan_control_la(ic))^2;
        if d2<tacan_tdistance(ic)
            tacan_tdistance(ic)=d2;
            tacan_ttime(ic)=time(jj);
        end
    end
    for ic=1:length(flir_control_la)
        d2=(phi(jj)-flir_control_phi(ic))^2+(la(jj)-flir_control_la(ic))^2;
        if d2<flir_tdistance(ic)
            flir_tdistance(ic)=d2;
            flir_ttime(ic)=time(jj);
        end
    end
     i=i+jump;
     jj=jj+1;
end
    
phi_=c2rad([30 0 0]);e=0.081819191;
h_=10000;Re=6378137;
Rm=Re*(1-e*e)/(1-e*e*sin(phi_)*sin(phi_))^1.5;
C1=1/(Rm+h_);
Rn=Re/sqrt((1-e*e*sin(phi_)*sin(phi_)));
C2=sec(phi_)/(Rn+h_);
    
x=la;
x=x/C2;
tx1=x(1);
x=x-tx1;
y=phi;
y=y/C1;
ty1=y(1);
y=y-ty1;

figures=get(0,'userdata');
if isfield(figures,'FV') & ishandle(figures.FV)
    figure(figures.FV);
else
   FV=figure('Menubar','figure', 'numbertitle','off', 'Unit','normalized', 'name','SSSSSSSSSS',...
        'tag','trajfig');
   set(0,'userdata',figures);
end

ai=axes('parent',FV);
set(ai,'color',[.4,.8,.4]);
grid on
hold on;
axis equal
view(2)
line(x,y,h,'color','b','parent',ai);
th=find(abs(h-300)>.1 & abs(h-4000)>.1);

tacan_control_x=tacan_control_la;
tacan_control_x=tacan_control_x/C2;
tacan_control_x=tacan_control_x-la(1)/C2;
tacan_control_y=tacan_control_phi;
tacan_control_y=tacan_control_y/C1;
tacan_control_y=tacan_control_y-phi(1)/C1;
flir_control_x=flir_control_la;
flir_control_x=flir_control_x/C2;
flir_control_x=flir_control_x-la(1)/C2;
flir_control_y=flir_control_phi;
flir_control_y=flir_control_y/C1;
flir_control_y=flir_control_y-phi(1)/C1;
filterpattern=getappdata(figures.FI,'filterpattern');
legendtext={'\fontsize{8}AAAAAAAAAAAAA'};
if filterpattern(2)==1 | filterpattern(3)==1
    plot3(tacan_control_x,tacan_control_y,tacan_control_h,'^','color','b');
    p=get(ai,'xlim');
    for(it=1:length(tacan_ttime))
        ts=['GGGG' (num2str(floor(tacan_ttime(it)))) 's'];
        text(tacan_control_x(it)+(p(2)-p(1))/40,tacan_control_y(it),ts);
    end
    legendtext{end+1}='\fontsize{8}TTTTTTTTTTTTTTTTT';
end
if filterpattern(4)==1
    plot3(flir_control_x,flir_control_y,flir_control_h,'*','color','r');
    p=get(ai,'xlim');
    for(it=1:length(flir_ttime))
        ts=['TT' (num2str(floor(flir_ttime(it)))) 's'];
        text(flir_control_x(it)+(p(2)-p(1))/40,flir_control_y(it),ts);
    end
    legendtext{end+1}='\fontsize{8}FFFFFFFFFFFFFFF';
end
if exist('tarpos')
    legendtext{end+1}='\fontsize{8}HHHHHHHHHH';
end
legend(legendtext);
tphi=phi(end);
tphi=tphi/C1;
tphi=tphi-phi(1)/C1;
tla=la(end);
tla=tla/C2;
tla=tla-la(1)/C2;
text(tla,tphi,['End Time:' num2str(time(end)) 's']);
try
    ty=tarpos(1)/C1-ty1;
    tx=tarpos(2)/C2-tx1;
    th=tarpos(3);
    plot3(tx,ty,th,'^')
end


    
p=get(ai,'xlim');
p(1)=p(1)-p(1)/5;
p(2)=p(2)+p(2)/5;
set(ai,'xlim',p);
p=get(ai,'ylim');
p(1)=p(1)-p(1)/5;
p(2)=p(2)+p(2)/5;
set(ai,'ylim',p);
xlabel('\fontsize{8}AAAAAAAA/m');ylabel('\fontsize{8}HHHHHHHH/m');zlabel('\fontsize{8}SSSSSSSS/m');
axis equal
delete(DI);

%-------------------------------------------------------------------------

function plotresult(hobject,eventdata,handles)
% try
[n,p]=uigetfile('*.dat','SSSSSSSS');
if n==0 return; end
load('-mat',[p n],'plotdata');
figures=get(0,'userdata');
handles=get(figures.FI,'userdata');
plotall(plotdata,handles,figures.FI,1);
% catch
%     errordlg('EEEEEE','');
% end

%-------------------------------------------------------------------------
function statusbar_callback(hobject,eventdata,handles)
figures=get(0,'userdata');
presstype=get(figures.FI,'selectiontype');
if strcmp(presstype,'open')==1
    filterpattern;
end

%-------------------------------------------------------------------------
function controlinput_callback(hobject,eventdata,handles)
figures=get(0,'userdata');
if isfield(figures,'FIV') & ishandle(figures.FIV)
    figure(figures.FIV);
else
   figures.FIV=controlinput;
   set(0,'userdata',figures);
end
%-------------------------------------------------------------------------
function deleteFigure(hobject,eventdata,handles)
if exist('data.tmp')
    delete('data.tmp');
end
if exist('gpsout.tmp')
    delete('gpsout.tmp');
end
figures=get(0,'userdata');
if isfield(figures,'FII') & ishandle(figures.FII)%TACAN controlinput
    delete(figures.FII);
end
if isfield(figures,'FIII') & ishandle(figures.FIII)%FLIR controlinput
    delete(figures.FIII);
end
if isfield(figures,'FIV') & ishandle(figures.FIV)%controlinput
    delete(figures.FIV);
end
if isfield(figures,'FV') & ishandle(figures.FV)%trajshow
    delete(figures.FV);
end
if isfield(figures,'FVI') & ishandle(figures.FVI)%filterpattern
    delete(figures.FVI);
end
if isfield(figures,'FVII') & ishandle(figures.FVII)%simconfig
    delete(figures.FVII);
end
if isfield(figures,'FVIII') & ishandle(figures.FVIII)%montocarlo
    delete(figures.FVIII);
end
set(0,'userdata',[]);

⌨️ 快捷键说明

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