📄 setting.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 + -