1. zadatak - sunce clc clearvars % Parametri r_kruga = 1.4; % Radijus kruga broj_trokuta = 8; % Broj trokuta broj_rotacija = 5; % Broj rotacija vrijeme_animacije = 2; % Ukupno vrijeme animacije (sekunde) broj_koraka = 240; % Broj koraka animacije % Definiranje kruga t = linspace(0, 2*pi, 100); x_krug = r_kruga * sin(t); y_krug = r_kruga * cos(t); % Definiranje trokuta x_trokut = [1.5 2.5 1.5]; y_trokut = [-0.5 0 0.5]; % Stvaranje grafičkog prozora figure; axis([-3 3 -3 3]); grid on; hold on; % Crteži patch(x_krug, y_krug, 'yellow'); % Inicijalizacija niza za trokute i rotacija trokut = gobjects(1, broj_trokuta); deg = 360 / broj_trokuta; for i = 1:broj_trokuta trokut(i) = patch(x_trokut, y_trokut, 'yellow'); rotate(trokut(i), [0 0 1], deg * (i - 1)); end % Računanje koraka rotacije koraci_rotacije = linspace(0, 360 * broj_rotacija, broj_koraka); % Animacija rotacije for i = 1:broj_koraka for j = 1:broj_trokuta rotate(trokut(j), [0 0 1], koraci_rotacije(i) / broj_koraka); end pause(vrijeme_animacije / broj_koraka); end 2. zadatak - napraviti sestougao koji se krece lijevo-desno 5 puta u vremenu od 10 sekundi. clc clear all close all x=[0 10 10 0]; % X-koordinate pravougaonika ili oblika y=[0 0 0.8 0.8]; % Y-koordinate pravougaonika ili oblika patch(x,y,'r'); % Kreira popunjenu poligon (pravougaonik) crvene boje hold on; % Zadržava trenutni graf i određene svojstva t=(1/12:1/6:1)'*2*pi; % Generiše uglove od 0 do 2*pi radijana x1=sin(t)+1; % X-koordinate kruga na osnovu sinusa uglova, pomaknuto za 1 y1=cos(t)+2; % Y-koordinate kruga na osnovu kosinusa uglova, pomaknuto za 2 h=fill(x1,y1,'y'); % Kreira popunjeni žuti krug koristeći izračunate koordinate axis([-2 12 -12 12]); % Postavlja granice osa za prikaz od -2 do 12 po x-osi i -12 do 12 po y-osi grid on; % Uključuje prikaz mreže na grafikonu x11=x1; % Postavlja početne X-koordinate za rotaciju y22=y1; % Postavlja početne Y-koordinate za rotaciju cx=1; % Početna X-koordinata centra rotacije for k=1:5 for i=1:30 zdir=[0 0 1]; % Z-os rotacije (ovdje znači rotacija oko Z-os) center=[cx 2 0]; % Koordinate centra rotacije set(h,'x',x11,'y',y22); % Postavlja nove X i Y koordinate kruga rotate(h,zdir,i*30,center); % Vrši rotaciju kruga za i*30 stepeni oko centra cx=cx+0.27444; % Pomiče X koordinatu centra rotacije x11=x11+0.27444; % Pomiče X koordinate kruga y22=y22; % Y koordinate kruga ostaju iste pause(0.025); % Pauzira izvršavanje koda na 0.025 sekundi end for j=1:30 zdir=[0 0 1]; % Z-os rotacije (ovdje znači rotacija oko Z-os) cx=cx; % X koordinata centra rotacije ostaje ista center=[cx 2 0]; % Koordinate centra rotacije set(h,'x',x11,'y',y22); % Postavlja nove X i Y koordinate kruga rotate(h,zdir,j*30,center); % Vrši rotaciju kruga za j*30 stepeni oko centra x11=x11-0.27444; % Pomiče X koordinate kruga unazad y22=y22; % Y koordinate kruga ostaju iste cx=cx-0.27444; % Pomiče X koordinatu centra rotacije unazad pause(0.025); % Pauzira izvršavanje koda na 0.025 sekundi end end 3. zadatak - kretanje kuglice po povrsini, kuglica se krece 3 sekunde s lijeva na desno i obrnuto x1=0; y1=-0.5:0.001:0.1; x2=4; y2=-0.5:0.001:0; y3=0; x3=0:0.01:4; plot(x1*ones(size(y1)), y1, x2*ones(size(y2)), y2, x3, y3*ones(size(x3)), 'LineWidth', 4) hold on t=(0:1/720:1)'*2*pi; x=0.1+0.1*sin(t); y=0.1+0.1*cos(t); h=fill(x,y,'b') axis([-0.5 4.5 -0.5 2]) xr=x; yr=y; a=0;b=0;c=0; for i=1:80 xr=xr+(3.8/80); a=a+(3.8/80); yr=yr; pause(3/80) set(h,'x',xr,'y',yr) rotate(h,[0 0 1],10,[a b 0]) end for i=1:80 xr=xr-(3.8/80); a=a-(3.8/80); yr=yr; pause(3/80) set(h,'x',xr,'y',yr) rotate(h,[0 0 1],10,[a b 0]) end