1. zadatak - izvrsi rotaciju trougla naredbom rotate i kretanje anredbom set close all clear all clc x1=[6 8 7 ] y1=[3 3 2] trougao=patch(x1,y1,'r') x11=x1 y11=y1 axis([3 8 -1 3]) for i=1:30 x11=x11-0.1 y11=y11; set(trougao,'x',x11,'y',y11) pause(3/30) end a=x11+1 b=y11-0.5 for i=1:30 x11=x11+0.1 y11=y11-0.1; set(trougao,'x',x11,'y',y11) pause(3/30) end for i=1:30 rotate(trougao,[0 0 1],6,[7,-0.5,0]) pause (0.1) end x11=[6 8 7] y11=[-1 -1 0] for i=1:30 x11=x11-0.1 y11=y11; set(trougao,'x',x11,'y',y11) pause(2/30) end for i=1:30 x11=x11+0.1 y11=y11+0.1; set(trougao,'x',x11,'y',y11) pause(2/30) end for i=1:30 rotate(trougao,[0 0 1],6,[7,2.5,0]) pause (1/30) end 2. zadatak - Kazaljka se krece oko centra kruga brzinom 2 sekunde po krugu, i crvene je boje r = 0:0.1:2*pi; x = sin(r)+5; y = cos(r)+5; patch(x,y,'yellow') x = [5 5 6 6]; y = [4.9 5.1 5.1 4.9]; kazaljka = patch(x,y,'red'); x1 = x; y1 = y; smjer = [0 0 1]; pause for i=1:180 rotate(kazaljka,smjer,-6) pause(1/30) end 3. zadatak - nacrtati 4- sranu piramidu visine 4 cm i osnovice 3 clear all close all a=3; h=4; P=a^2 + 2*a*h; V=a^2*h./3; fprintf('Povrsina je:'); disp(P); fprintf('Zapremina je:'); disp(V); x = [0 3 3 0]; y = [0 0 3 3]; z = [0 0 0 0]; patch(x,y,z,'y'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 3 1.5]; y = [0 0 1.5]; z = [0 0 4]; patch(x,y,z,'r'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 0 1.5] y = [0 3 1.5]; z = [0 0 4]; patch(x,y,z,'g'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [0 3 1.5]; y = [3 3 1.5]; z = [0 0 4]; patch(x,y,z,'b'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); x = [3 3 1.5]; y = [0 3 1.5]; z = [0 0 4]; patch(x,y,z,'m'); grid on; axis([-2 5 -2 5]); xlabel('x-osa'); ylabel('y-osa'); zlabel('z-osa'); 4. zadatak - semafor - crvenno 50, zuto 5, zeleno 50 , nakon toga zeleno trepce 3 puta po 5 sekundi pa se pali zuto i onda crveno t = 0:0.1:2*pi; x_background = [-2 2 2 -2]; y_background = [-8 -8 2 2]; figure; patch(x_background, y_background, 'k'); axis([-10 10 -10 10]); hold on; while true % Crvena boja svijetli 50 sekundi crveno = patch(sin(t), cos(t), 'red'); pause(5); % 50 sekundi % Zatim žuta boja svijetli 5 sekundi delete(crveno); zuto = patch(sin(t), cos(t) - 3, 'yellow'); pause(2); % 5 sekundi % Zelena boja svijetli 50 sekundi delete(zuto); zeleno = patch(sin(t), cos(t) - 6, 'green'); pause(5); % 50 sekundi % Treptanje tri puta po 5 sekundi for i = 1:3 delete(zeleno); pause(0.5); % 0.5 sekundi zeleno = patch(sin(t), cos(t) - 6, 'green'); pause(0.5); % 0.5 sekundi end % Nakon treptanja, žuto pa crveno svjetlo delete(zeleno); zuto = patch(sin(t), cos(t) - 3, 'yellow'); pause(2); % 5 sekundi delete(zuto); crveno = patch(sin(t), cos(t), 'red'); pause(50); % 50 sekundi end 5. zadatak - dva semafora (pjesaci i automobili) % Definisanje kutije semafora x1 = [-1.2 1.2 1.2 -1.2]; % X koordinate kutije semafora y1 = [-6.2 -6.2 1.2 1.2]; % Y koordinate kutije semafora vsemafor = patch(x1, y1, 'black'); % Kreiranje kvadratnog oblika za kutiju semafora i bojanje u crno hold on % Zadržavanje trenutnog grafa % Definisanje krugova za svjetla t = (0:1/360:1)'*2*pi; % Generisanje uglova za kružne oblike x = sin(t); % X koordinate krugova (sinusna funkcija) y = cos(t); % Y koordinate krugova (kosinusna funkcija) crveno = fill(x, y, 'black'); % Kreiranje crvenog svjetla i bojanje u crno hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'black'); % Kreiranje žutog svjetla i bojanje u crno (pomjereno za 2.5 dolje) hold on % Zadržavanje trenutnog grafa zeleno = fill(x, y-5, 'black'); % Kreiranje zelenog svjetla i bojanje u crno (pomjereno za 5 dolje) hold on % Zadržavanje trenutnog grafa axis([-2 5 -7 2]) % Postavljanje granica osi % Definisanje kutije drugog semafora x2 = [2.3 4.5 4.5 2.3]; % X koordinate kutije drugog semafora y2 = [-6.2 -6.2 -2.5 -2.5]; % Y koordinate kutije drugog semafora msemafor = patch(x2, y2, 'black'); % Kreiranje kvadratnog oblika za kutiju drugog semafora i bojanje u crno hold on % Zadržavanje trenutnog grafa x3 = 0.8*cos(t); % X koordinate krugova za drugi semafor (skalirano na 0.8) y3 = 0.8*sin(t); % Y koordinate krugova za drugi semafor (skalirano na 0.8) crvenom = fill(x3+3.4, y3-3.4, 'black'); % Kreiranje crvenog svjetla na drugom semaforu i bojanje u crno (pomjereno) hold on % Zadržavanje trenutnog grafa zelenom = fill(x3+3.4, y3-5.1, 'black'); % Kreiranje zelenog svjetla na drugom semaforu i bojanje u crno (pomjereno) hold on % Zadržavanje trenutnog grafa % Prikaz crvenog svjetla na prvom semaforu for i = 1:3 pause(0.5) % Pauza od 0.5 sekundi crveno = fill(x, y, 'red'); % Prikaz crvenog svjetla hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'black'); % Bojanje žutog svjetla u crno hold on % Zadržavanje trenutnog grafa zeleno = fill(x, y-5, 'black'); % Bojanje zelenog svjetla u crno hold on % Zadržavanje trenutnog grafa end % Prikaz zelenog svjetla na drugom semaforu for i = 1:6 pause(0.5) % Pauza od 0.5 sekundi crvenom = fill(x3+3.4, y3-3.4, 'black'); % Bojanje crvenog svjetla na drugom semaforu u crno hold on % Zadržavanje trenutnog grafa zelenom = fill(x3+3.4, y3-5.1, 'green'); % Prikaz zelenog svjetla na drugom semaforu hold on % Zadržavanje trenutnog grafa end % Prikaz žutog svjetla na prvom semaforu for i = 1:3 pause(0.5) % Pauza od 0.5 sekundi crveno = fill(x, y, 'black'); % Bojanje crvenog svjetla u crno hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'yellow'); % Prikaz žutog svjetla hold on % Zadržavanje trenutnog grafa zeleno = fill(x, y-5, 'black'); % Bojanje zelenog svjetla u crno hold on % Zadržavanje trenutnog grafa end % Prikaz crvenog svjetla na drugom semaforu for i = 1:3 crvenom = fill(x3+3.4, y3-3.4, 'red'); % Prikaz crvenog svjetla na drugom semaforu hold on % Zadržavanje trenutnog grafa zelenom = fill(x3+3.4, y3-5.1, 'black'); % Bojanje zelenog svjetla na drugom semaforu u crno hold on % Zadržavanje trenutnog grafa pause(0.5) % Pauza od 0.5 sekundi end % Prikaz zelenog svjetla na prvom semaforu for i = 1:3 pause(1) % Pauza od 1 sekunde crveno = fill(x, y, 'black'); % Bojanje crvenog svjetla u crno hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'black'); % Bojanje žutog svjetla u crno hold on % Zadržavanje trenutnog grafa zeleno = fill(x, y-5, 'green'); % Prikaz zelenog svjetla hold on % Zadržavanje trenutnog grafa end % Titranje zelenog svjetla na prvom semaforu for i = 1:3 pause(0.5) % Pauza od 0.5 sekundi crveno = fill(x, y, 'black'); % Bojanje crvenog svjetla u crno hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'black'); % Bojanje žutog svjetla u crno hold on % Zadržavanje trenutnog grafa zeleno = fill(x, y-5, 'black'); % Bojanje zelenog svjetla u crno hold on % Zadržavanje trenutnog grafa pause(0.5) % Pauza od 0.5 sekundi zeleno = fill(x, y-5, 'green'); % Prikaz zelenog svjetla hold on % Zadržavanje trenutnog grafa end % Promjena zelenog svjetla na prvom semaforu u žuto pause(0.5) % Pauza od 0.5 sekundi zeleno = fill(x, y-5, 'black'); % Bojanje zelenog svjetla u crno hold on % Zadržavanje trenutnog grafa zuto = fill(x, y-2.5, 'yellow'); % Prikaz žutog svjetla hold on % Zadržavanje trenutnog grafa pause(2) % Pauza od 2 sekunde % Promjena žutog svjetla na prvom semaforu u crveno zuto = fill(x, y-2.5, 'black'); % Bojanje žutog svjetla u crno hold on % Zadržavanje trenutnog grafa crveno = fill(x, y, 'red'); % Prikaz crvenog svjetla hold on % Zadržavanje trenutnog grafa % Promjena drugog semafora na zeleno svjetlo crvenom = fill(x3+3.4, y3-3.4, 'black'); % Bojanje crvenog svjetla na drugom semaforu u crno hold on % Zadržavanje trenutnog grafa zelenom = fill(x3+3.4, y3-5.1, 'green'); % Prikaz zelenog svjetla na drugom semaforu hold on % Zadržavanje trenutnog grafa 6. zadatak - kazaljka se krece po linijaru u jednom smjeru 1 sekundu, a u drugom dvije, kad se vrati mijenja boju x=[-1 7 7 -1]; y=[0 0 -7 -7] bg=patch(x,y,'w') hold on xl = [0 6 6 0]; yl = [-1 -1 -2 -2]; linijar = patch(xl, yl, 'w'); hold on text(0.15,-1.75,'0') text(0.25,-2,'|') text(0.75,-2,'|') text(1.25,-2,'|') text(1.75,-2,'|') text(2.25,-2,'|') text(2.75,-2,'|') text(3.25,-2,'|') text(3.75,-2,'|') text(4.25,-2,'|') text(4.75,-2,'|') text(5.25,-2,'|') text(5.75,-2,'|') text(5.7,-1.75,'12') hold all xk=[0.2 0.2 0 0.25 0.5 0.3 0.3]; yk=[-4 -2.2 -2.2 -2 -2.2 -2.2 -4]; strelicaa=patch(xk,yk,'r') for i=1:11 xk=xk+0.5; yk=yk; pause(1/11) set(strelicaa,'x',xk,'y',yk) end for i=1:11 xk=xk-0.5; yk=yk; pause(2/11) set(strelicaa,'x',xk,'y',yk,'facecolor','blue'); end 7. zadatak - napraviti petougao koji se pod uglom od 30 stepeni pomjera za svojih 5 duzina u odnosu na x osu. Istovremeno se okrene 5 puta u vremenu od 5 sekundi clear all close all clc figure t=(1/10:1/5:1)'*2*pi; x=sin(t); y=cos(t); axis([-2 12 -2 8]) h=patch(x,y,'r'); xlabel('x'); ylabel('y'); zlabel('z'); title('Rotacija i translacija petougla'); grid ON pause(2) x1=x; y1=y; x2=0; y2=0; for t=1:1:60 x1=x1+(1/6); y1=y1+(0.1); x2=x2+(1/6); y2=y2+(0.1); set(h,'x',x1,'y',y1) rotate(h, [0 0 1], t*30, [x2 y2 0]) pause(0.03) end