Facebook
From enchante, 9 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 246
  1. 1. zadatak - sunce
  2. clc
  3. clearvars
  4.  
  5. % Parametri
  6. r_kruga = 1.4; % Radijus kruga
  7. broj_trokuta = 8; % Broj trokuta
  8. broj_rotacija = 5; % Broj rotacija
  9. vrijeme_animacije = 2; % Ukupno vrijeme animacije (sekunde)
  10. broj_koraka = 240; % Broj koraka animacije
  11.  
  12. % Definiranje kruga
  13. t = linspace(0, 2*pi, 100);
  14. x_krug = r_kruga * sin(t);
  15. y_krug = r_kruga * cos(t);
  16. % Definiranje trokuta
  17. x_trokut = [1.5 2.5 1.5];
  18. y_trokut = [-0.5 0 0.5];
  19.  
  20. % Stvaranje grafičkog prozora
  21. figure;
  22. axis([-3 3 -3 3]);
  23. grid on;
  24. hold on;
  25.  
  26. % Crteži
  27. patch(x_krug, y_krug, 'yellow');
  28.  
  29. % Inicijalizacija niza za trokute i rotacija
  30. trokut = gobjects(1, broj_trokuta);
  31. deg = 360 / broj_trokuta;
  32.  
  33. for i = 1:broj_trokuta
  34.     trokut(i) = patch(x_trokut, y_trokut, 'yellow');
  35.     rotate(trokut(i), [0 0 1], deg * (i - 1));
  36. end
  37.  
  38. % Računanje koraka rotacije
  39. koraci_rotacije = linspace(0, 360 * broj_rotacija, broj_koraka);
  40. % Animacija rotacije
  41. for i = 1:broj_koraka
  42.     for j = 1:broj_trokuta
  43.         rotate(trokut(j), [0 0 1], koraci_rotacije(i) / broj_koraka);
  44.     end
  45.     pause(vrijeme_animacije / broj_koraka);
  46. end
  47.  
  48. 2. zadatak - napraviti sestougao koji se krece lijevo-desno 5 puta u vremenu od 10 sekundi.
  49.  
  50. clc
  51. clear all
  52. close all
  53.  
  54. x=[0 10 10 0]; % X-koordinate pravougaonika ili oblika
  55. y=[0 0 0.8 0.8]; % Y-koordinate pravougaonika ili oblika
  56. patch(x,y,'r'); % Kreira popunjenu poligon (pravougaonik) crvene boje
  57. hold on; % Zadržava trenutni graf i određene svojstva
  58.  
  59. t=(1/12:1/6:1)'*2*pi; % Generiše uglove od 0 do 2*pi radijana
  60. x1=sin(t)+1; % X-koordinate kruga na osnovu sinusa uglova, pomaknuto za 1
  61. y1=cos(t)+2; % Y-koordinate kruga na osnovu kosinusa uglova, pomaknuto za 2
  62. h=fill(x1,y1,'y'); % Kreira popunjeni žuti krug koristeći izračunate koordinate
  63.  
  64. axis([-2 12 -12 12]); % Postavlja granice osa za prikaz od -2 do 12 po x-osi i -12 do 12 po y-osi
  65. grid on; % Uključuje prikaz mreže na grafikonu
  66.  
  67. x11=x1; % Postavlja početne X-koordinate za rotaciju
  68. y22=y1; % Postavlja početne Y-koordinate za rotaciju
  69. cx=1;   % Početna X-koordinata centra rotacije
  70.  
  71. for k=1:5
  72.     for i=1:30
  73.         zdir=[0 0 1];   % Z-os rotacije (ovdje znači rotacija oko Z-os)
  74.         center=[cx 2 0]; % Koordinate centra rotacije
  75.        
  76.         set(h,'x',x11,'y',y22); % Postavlja nove X i Y koordinate kruga
  77.         rotate(h,zdir,i*30,center); % Vrši rotaciju kruga za i*30 stepeni oko centra
  78.        
  79.         cx=cx+0.27444;  % Pomiče X koordinatu centra rotacije
  80.         x11=x11+0.27444; % Pomiče X koordinate kruga
  81.         y22=y22;        % Y koordinate kruga ostaju iste
  82.        
  83.         pause(0.025);   % Pauzira izvršavanje koda na 0.025 sekundi
  84.     end
  85.    
  86.     for j=1:30
  87.         zdir=[0 0 1];   % Z-os rotacije (ovdje znači rotacija oko Z-os)
  88.         cx=cx;          % X koordinata centra rotacije ostaje ista
  89.         center=[cx 2 0]; % Koordinate centra rotacije
  90.        
  91.         set(h,'x',x11,'y',y22); % Postavlja nove X i Y koordinate kruga
  92.         rotate(h,zdir,j*30,center); % Vrši rotaciju kruga za j*30 stepeni oko centra
  93.        
  94.         x11=x11-0.27444; % Pomiče X koordinate kruga unazad
  95.         y22=y22;         % Y koordinate kruga ostaju iste
  96.         cx=cx-0.27444;   % Pomiče X koordinatu centra rotacije unazad
  97.        
  98.         pause(0.025);    % Pauzira izvršavanje koda na 0.025 sekundi
  99.     end
  100. end
  101.  
  102. 3. zadatak - kretanje kuglice po povrsini, kuglica se krece 3 sekunde s lijeva na desno i obrnuto
  103.  
  104. x1=0;
  105. y1=-0.5:0.001:0.1;
  106. x2=4;
  107. y2=-0.5:0.001:0;
  108. y3=0;
  109. x3=0:0.01:4;
  110. plot(x1*ones(size(y1)), y1, x2*ones(size(y2)), y2, x3, y3*ones(size(x3)), 'LineWidth', 4)
  111. hold on
  112. t=(0:1/720:1)'*2*pi;
  113. x=0.1+0.1*sin(t);
  114. y=0.1+0.1*cos(t);
  115. h=fill(x,y,'b')
  116. axis([-0.5 4.5 -0.5 2])
  117. xr=x;
  118. yr=y;
  119. a=0;b=0;c=0;
  120. for i=1:80
  121.     xr=xr+(3.8/80);
  122.     a=a+(3.8/80);
  123.     yr=yr;
  124.     pause(3/80)
  125.     set(h,'x',xr,'y',yr)
  126.     rotate(h,[0 0 1],10,[a b 0])
  127. end
  128. for i=1:80
  129.     xr=xr-(3.8/80);
  130.     a=a-(3.8/80);
  131.     yr=yr;
  132.     pause(3/80)
  133.     set(h,'x',xr,'y',yr)
  134.     rotate(h,[0 0 1],10,[a b 0])
  135. end
  136.