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

📄 setting.m

📁 等高线拟合源代码(matlab源码)
💻 M
字号:
function setting(action)% SETTING Handles the settings and toggles for GUI.% All the software included in this package is presented as is.% It may be distributed freely. The author can, however, not be% held responsible for any problems whatever.% % Designed by Johan Baeten.% Last updated: 22-03-2000% Johan.baeten@mech.kuleuven.ac.be% Put stringvariables like action(1:9) at the end % -> ohterwise an error will occurglobal MENUBARHANDLES global SUBMENUHANDLESglobal UICTRHANDLESglobal XSIZEglobal YSIZEglobal IMAGENAMEglobal NEWIMAGENAMEglobal MAINFIGglobal VIEWSIZEglobal FITHANDLESglobal FILENAMEglobal FILECHANGEDglobal PIXFACTORset(UICTRHANDLES(1),'string','');if strcmp(action,'toggleshowpoints'),     if strcmp(get(SUBMENUHANDLES(1),'checked'),'on'),        set(SUBMENUHANDLES(1),'checked','off');     else       set(SUBMENUHANDLES(1),'checked','on');     endelseif strcmp(action,'toggleextrapolate'),     if strcmp(get(SUBMENUHANDLES(15),'checked'),'on'),        set(SUBMENUHANDLES(15),'checked','off');     else       set(SUBMENUHANDLES(15),'checked','on');     endelseif strcmp(action,'togglezoomfunction')   if strcmp(get(SUBMENUHANDLES(2),'label'),'Zoom On'),      set(SUBMENUHANDLES(2),'label','Zoom Off');      set(SUBMENUHANDLES(3),'enable','on');      zoom on;   else      set(SUBMENUHANDLES(2),'label','Zoom On');      set(SUBMENUHANDLES(3),'enable','off',...                            'label','Axes Auto');      set(SUBMENUHANDLES(4),'enable','On');      setting('drawaxes');      zoom out;      zoom off;   endelseif strcmp(action,'toggleaxesfunction')   if strcmp(get(SUBMENUHANDLES(3),'label'),'Axes Auto'),      set(SUBMENUHANDLES(3),'label','Axes Fixed');      set(SUBMENUHANDLES(4),'enable','Off');      set(gca,'xcolor',[1 1 1],'ycolor',[1 1 1],...              'xticklabelmode','auto','yticklabelmode','auto');            setting('showtitle')   else      set(SUBMENUHANDLES(3),'label','Axes Auto');      set(SUBMENUHANDLES(4),'enable','On');      setting('drawaxes');      setting('showtitle');   endelseif strcmp(action,'showtitle'),   if strcmp(FILENAME,'*.mat')     nrofpoints = get(FITHANDLES(1,12),'value');     if nrofpoints==0,       fn=' -no data-';     else       fn = '-not saved-';          end   else     if FILECHANGED      fn = [FILENAME,' -Modified-'];     else      fn = FILENAME;     end   end   in = '-hidden-';   h= findobj(gca,'type','image');   if ~(length(h)==0),      if strcmp(get(h(1),'visible'),'on')        in = IMAGENAME;      end   end       titlestr = ['Image : ',in,'       File : ', fn];   if strcmp(get(SUBMENUHANDLES(3),'label'),'Axes Auto'),      set(get(gca,'title'),'string',titlestr,'color',[0.8 0.9 0],'Fontsize',[10]);                         else      set(get(gca,'title'),'string',titlestr,'color',[1 1 1]);                         endelseif strcmp(action,'drawaxes'),   % Be careful label shows the opposit from what is valid   if strcmp(get(SUBMENUHANDLES(3),'label'),'Axes Auto'),     set(gca,'gridlinestyle',':','linewidth',[0.01],'fontsize',[8],...             'xcolor',[0.8 0.9 0],'ycolor',[0.8 0.9 0]);     xlabel('Pixels'),ylabel('Pixels');     maxsize = max([XSIZE,YSIZE]);     if (maxsize <= 64) ,        set(gca,'xlim',[0.5,64.5],'ylim',[0.5,64.5], ...                'xtick',[0.5:8:64.5],'ytick',[0.5:8:64.5],...                'xticklabel',['0 ';'8 ';'16';'24';'32';'40';'48';'56';'64'],...                'yticklabel',['0 ';'8 ';'16';'24';'32';'40';'48';'56';'64']);        grid on;      elseif (maxsize <= 128),           set(gca,'xlim',[0.5,128.5],'ylim',[0.5,128.5],...                'xtick',[0.5:16:128.5],'ytick',[0.5:16:128.5],...                'xticklabel', [' 0 ';'16 ';'32 ';'48 ';'64 ';'80 ';'96 ';'112';'128' ],...                'yticklabel', [' 0 ';'16 ';'32 ';'48 ';'64 ';'80 ';'96 ';'112';'128' ]);        grid on;     elseif (maxsize <= 256),        set(gca,'xlim',[0.5,256.5],'ylim',[0.5,256.5],...                'xtick',[0.5:32:256.5],'ytick',[0.5:32:256.5],...                'XTickLabel', [' 0 ';'32 ';'64 ';'96 ';'128';'160';'192';'224';'256' ],...                'YTickLabel', [' 0 ';'32 ';'64 ';'96 ';'128';'160';'192';'224';'256' ]);        grid on;     elseif (maxsize <= 512),        set(gca,'xlim',[0.5,512.5],'ylim',[0.5,512.5],...                'xtick',[0.5:64:512.5],'ytick',[0.5:64:512.5],...                'XTickLabel', [' 0 ';'64 ';'128';'192';'256';'320';'384';'448';'512' ],...                'YTickLabel', [' 0 ';'64 ';'128';'192';'256';'320';'384';'448';'512' ]);        grid on;      else        seterror(' ... Can''t draw axes: image size to big');     end   endelseif strcmp(action,'redraw')   savedata(1);   setting('clearall');   retrdata(1);elseif strcmp(action,'drawimage')  %used when loading a new image   hlines=findobj(get(gca,'children'),'type','line');   xl=0;   % only the last fit will be held over !!   if ~(length(hlines)==0),     if (get(max(hlines),'linestyle')=='o'),       delete(max(hlines));         hlines=findobj(get(gca,'children'),'type','line');     end     if ~(length(hlines)==0),       xl=get(max(hlines),'xdata');       yl=get(max(hlines),'ydata');     end   end   himage = findobj(get(gca,'children'),'type','image');   if (length(himage)==0 | strcmp(get(SUBMENUHANDLES(2),'label'),'Zoom On')),     delete(get(gca,'children'));     beeld = get(MAINFIG,'userdata');     image(beeld), colormap(gray(255));   else     set(himage,'visible','on');     hh = findobj(get(gca,'children'),'type','line');     l= length(hh);     while ~(l==0),       delete(hh(1));       hh = findobj(get(gca,'children'),'type','line');       l= length(hh);     end   end   setting('showtitle');    if strcmp(get(SUBMENUHANDLES(1),'checked'),'on'), % this means show points     nrofpoints = get(FITHANDLES(1,12),'value');     xc(1)=0;     yc(1)=0;     for i = 1:nrofpoints,        xc(i) = get(FITHANDLES(3,i),'value');        yc(i) = get(FITHANDLES(4,i),'value');     end     hold on, plot(xc+0.5,yc+0.5,'ro');     if ~(xl==0),        plot(xl,yl,'y-');     end     hold off;   end   if strcmp(get(SUBMENUHANDLES(2),'label'),'Zoom On'),     setting('drawaxes');   end   if ~(xl==0),     seterror(' Only last fit is redrawn. ');   endelseif strcmp(action,'showimage')  h=findobj(gca,'type','image');  set(SUBMENUHANDLES(10),'label','Hide Image',...         'callback','setting (''hideimage'')');  if length(h)==0,     seterror(' Bug: May never occur');  else      set(h,'visible','on');      setting('showtitle');  endelseif strcmp(action,'hideimage')  h=findobj(gca,'type','image');  set(SUBMENUHANDLES(10),'label','Show Image',...         'callback','setting (''showimage'')');  if length(h)==0,     seterror(' Bug: May never occur');  else      set(h,'visible','off');      setting('showtitle');  endelseif strcmp(action,'clearall')  hh = findobj(get(gca,'children'),'type','line');  l= length(hh);  while ~(l==0),    delete(hh(1));    hh = findobj(get(gca,'children'),'type','line');    l= length(hh);  end  routine('new')elseif strcmp(action,'viewsize');   viewsize = VIEWSIZE;   h_assen = get(gcf,'currentaxes');   pos_fig = get(gcf,'position');   centerx = pos_fig(3)/3;   centery = pos_fig(4)/2;    if viewsize == 0,      maxsize = max([XSIZE,YSIZE]);      if maxsize <= 128,        viewsize = 1;      elseif maxsize <= 256,        viewsize = 2;      else        viewsize = 3;      end   end   stap = floor(min([pos_fig(3)/3.6*viewsize/3, pos_fig(4)/2.4*viewsize/3]));   pos = [centerx-stap centery-stap 2*stap 2*stap];%*PIXFACTOR;   set(h_assen, 'units', 'pixels','position',pos);   set(h_assen, 'units', 'normalized');   axis equal;   setting('drawaxes');elseif strcmp(action(1:9),'setsorton'),   if strcmp(action(10),'x'),      set(SUBMENUHANDLES(11),'checked','on');      set(SUBMENUHANDLES(12),'checked','off');      if strcmp(get(SUBMENUHANDLES(13),'checked'),'on'),            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points increasing in x');      else            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points descending in x');        end         else      set(SUBMENUHANDLES(12),'checked','on');      set(SUBMENUHANDLES(11),'checked','off');      if strcmp(get(SUBMENUHANDLES(13),'checked'),'on'),            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points increasing in y');      else            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points descending in y');        end         endelseif strcmp(action,'sortincreasing'),      set(SUBMENUHANDLES(13),'checked','on');      set(SUBMENUHANDLES(14),'checked','off');      if strcmp(get(SUBMENUHANDLES(11),'checked'),'on'),            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points increasing in x');      else            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points increasing in y');        end       elseif strcmp(action,'sortdescending'),      set(SUBMENUHANDLES(13),'checked','off');      set(SUBMENUHANDLES(14),'checked','on');  		if strcmp(get(SUBMENUHANDLES(11),'checked'),'on'),            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points descending in x');      else            set(FITHANDLES(1,5),'tooltipString', ...            'Sort points descending in y');        endelseif strcmp(action(1:9),'imagesize'),   set(SUBMENUHANDLES(31:34),'checked','off');   if strcmp(action(10:11),'64'),      XSIZE = 64;      YSIZE = 64;      set(SUBMENUHANDLES(31),'checked','on');   elseif strcmp(action(10:11),'12'),      XSIZE = 128;      YSIZE = 128;      set(SUBMENUHANDLES(32),'checked','on');   elseif strcmp(action(10:11),'25'),      XSIZE = 256;      YSIZE = 256;      set(SUBMENUHANDLES(33),'checked','on');   elseif strcmp(action(10:11),'51'),      XSIZE = 512;      YSIZE = 512;      set(SUBMENUHANDLES(34),'checked','on');   end            setting('drawaxes');elseif strcmp(action(1:11),'setviewsize'),   set(SUBMENUHANDLES(41:44),'checked','off');   if strcmp(action(12:13),'sm'),      VIEWSIZE = 1;      set(SUBMENUHANDLES(41),'checked','on');   elseif strcmp(action(12:13),'me'),      set(SUBMENUHANDLES(42),'checked','on');      VIEWSIZE = 2;   elseif strcmp(action(12:13),'la'),      VIEWSIZE = 3;      set(SUBMENUHANDLES(43),'checked','on');   elseif strcmp(action(12:13),'au'),      VIEWSIZE = 0;      set(SUBMENUHANDLES(44),'checked','on');   end            setting('viewsize');elseif strcmp(action(1:13),'menubarenable'),   if strcmp(action(14:15),'on'),     set(MENUBARHANDLES,'enable','on');   else     set(MENUBARHANDLES,'enable','off');      endelseif strcmp(action(1:15),'saveimageenable'),   if strcmp(action(16:17),'on'),     set(SUBMENUHANDLES(7),'enable','on');   else     set(SUBMENUHANDLES(7),'enable','off');      endelse   seterror(' DEBUG ERROR ... Invalid option in setting.m');end;

⌨️ 快捷键说明

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