%% naredba uicontextmenu % Define the context menu clear, clc, close all %menu('tekst','drugi','treci') cmenu = uicontextmenu; % Definira liniju i pridruzi joj meni x=1:0.1:10; hline = plot(x,sin(x), 'UIContextMenu', cmenu); xlim([1 10]) % Definira djelove menija item1 = uimenu(cmenu, 'Label', 'crtkano', 'Callback', 'set(hline, ''LineStyle'', ''--'')'); cb2 = ['set(hline, ''LineStyle'', '':'')'];% Definira callback za odabire u meniju cb3 = ['set(hline, ''LineStyle'', ''-'')']; item2 = uimenu(cmenu, 'Label', 'tockasto', 'Callback', cb2); item3 = uimenu(cmenu, 'Label', 'linija', 'Callback', cb3); cmenu2= uicontextmenu; set(gca, 'UIContextMenu', cmenu2); uimenu(cmenu2, 'Label', 'mreza ON', 'Callback', 'grid on'); uimenu(cmenu2, 'Label', 'mreza OFF', 'Callback', 'grid off'); %DZ dodajte odabir pridruzen slici pomocu kojeg se moze naslov s funkcijom %koja se crta, a obabirom naslova se taj naslov moze obrisati %% naredbe uitoolbar, uitoggletool, uipushtool, uibuttongroup clc, clear, close all fig=figure('color','b','Toolbar','none');%,'ToolBar','none' ht = uitoolbar(fig); a = rand(16,16,3); htt = uitoggletool(ht,'CData',a,'TooltipString','Dodaj meni sa izborom boje',... 'oncallback','set(h0,''Visible'',''on'')','offcallback','set(h0,''Visible'',''off'')'); %truecolor slika (zadana je sa n x m x 3 podataka RGB vrijednosti) b = zeros(16,16,3); b(:,:,1) = 1*ones(16,16); b(:,3:4,3)=1*ones(size(b(:,3:4,3))); b(:,3:4,1)=0*ones(size(b(:,3:4,3))); b(1:2,3:12,3)=1*ones(size(b(1:2,3:12,1))); b(1:2,3:12,1)=0*ones(size(b(1:2,3:12,1))); b(7:8,3:10,3)=1*ones(size(b(7:8,3:10,3))); b(7:8,3:10,1)=0*ones(size(b(7:8,3:10,3))); b(15:16,3:12,3)=1*ones(size(b(15:16,3:12,3))); b(15:16,3:12,1)=0*ones(size(b(15:16,3:12,3))); hpt = uipushtool(ht,'CData',b,'TooltipString','EXIT','ClickedCallback','clc,close all') %set(hpt) % Kreiramo grupu koja sa sastoju od radiobutton ili toglebutton h0 = uibuttongroup('Position',[0 0 .2 1],'Visible','off'); u0 = uicontrol('Style','radio','String','plava boja',... 'pos',[10 350 80 30],'parent',h0) u1 = uicontrol('Style','radio','String','zelena boja',...% 'pos',[10 250 80 30],'parent',h0 ) u2 = uicontrol('Style','radio','String','zuta boja',... 'pos',[10 150 80 30],'parent',h0 ) set(h0,'SelectionChangeFcn',['if get(h0,''SelectedObject'')== u0, set(fig, ''color'',''b''), end;',... 'if get(h0,''SelectedObject'')== u1, set(fig, ''color'',''g''), end;',... 'if get(h0,''SelectedObject'')== u2, set(fig, ''color'',''y''), end']) %promjena se vrsi naredbom set: set(h0,'SelectedObject',u2) %% naredbe uiwait, uiresume i waitbar clear, close all, clc f = figure; h = uicontrol('Style','pushbutton',... 'Position', [20 20 200 40],... 'String', 'ukljuci stopericu', ... 'Callback', 'uiresume'); disp('Ovo ce se ispisati odmah'); uiwait; %blokira izvrsavanje i ceka naredbu resume clear, close all, clc h=waitbar(0,'Computing') set(h,'Name','Ime') n=10; for j=1:n pause(1) waitbar(j/n) end close(h) disp('Ovo ce se ispisati nakon sto kliknete uiresume'); %% primjer 1. clear close all set(gca, 'ylim', [0 5],'Xlim',[0 10]) %kad se dogodi klik s misem ili pomak, spremamo to u pripadnu varijabli set(gcf,'windowbuttondownfcn','mousedown=1;'); set(gcf,'windowbuttonupfcn','mousedown=0;');%clc set(gcf,'windowbuttonmotionfcn','mousemotion=1;'); uicontrol('style','pushbutton',... 'string','Quit', ... 'position',[0 0 50 20], ... 'callback','stopit=1;'); set(gcf,'DeleteFcn','stopit=1')%sprijecava da se beskonacna petlja vrti u pozadini %zapocinje petlja koja ceka klik misa stopit = 0; mousedown = 0; mousemotion = 0; hold on while (stopit==0) if mousedown==1 & mousemotion==1 %dohvaca odabranu poziciju mouse = get(gca,'currentpoint'); plot(mouse(1,1),mouse(1,2),'.') mousemotion=0; end drawnow end close all %% primjer 1., ali drugacije isprogramirano clf clear all %kad se dogodi klik s misem ili pomak, spremamo to u pripadnu varijabli mousedown=0; mousedown=0; set(gca, 'ylim', [0 5],'Xlim',[0 10]), set(gcf,'windowbuttondownfcn','mousedown=1; mouse = get(gca,''currentpoint'');,plot(mouse(1,1),mouse(1,2),''.''),hold on, drawnow , set(gca, ''ylim'', [0 5],''Xlim'',[0 10]), '); set(gcf,'windowbuttonupfcn',' mousedown=0;');%clc set(gcf,'windowbuttonmotionfcn',' if mousedown==1, mouse = get(gca,''currentpoint'');,plot(mouse(1,1),mouse(1,2),''.''),hold on, drawnow , set(gca, ''ylim'', [0 5],''Xlim'',[0 10]),, end'); uicontrol('style','pushbutton',... 'string','Quit', ... 'position',[0 0 50 20], ... 'callback','close all'); % vjezbe: %% a) dodajte zelenu tipku u toolbaru koju kada odaberemo, tada se redom spoje odabrane tocke %% b) dodajte kontekstualni meni pridruzen slici koji mijenja boju pozadine, a izbornik se pojavi nakon spajanja linije %% c) dodajte kontekstualni meni pridruzen liniji koji omogucuje ispis duljine linije