- 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