% skript ktory vypocita prejdenu vzdialenost gulicky, jej rychlost a uhly
clear all;close all;clc
% Bunka cislo 1
x = [223.57 226.03 226.88 227.89 228.38];
y = [800 800 800 800 800];
z = [592.35 565.29 540.12 519.30 501.26];
y = y-z;
delka = length(x);
vzdialenost = 0;

for k = 1: (delka-1)
    vzdialenost_pom = sqrt( (x(k+1)-x(k))^2 + (y(k+1)- y(k))^2 ); 
    vzdialenost = vzdialenost + vzdialenost_pom;
    
end

% prevod vzdialenosti z pixelov na mikrometre
% rozmery povodneho obrazu : 1439x1080 pixelov = 622.18x466.55 mikrometrov
% 1 mikrometer = 1439/622.18 = 2.312 pixelov
vzdialenost = vzdialenost/2.312;
fprintf('Gulička č.1 prešla vzdialenosť : %1.2f mikrometrov\n',vzdialenost);


% Bunka cislo 2
x1 = [454.87 482.74 520.87  572.48 640.55];
y1 = [800 800 800 800 800];
z1 = [384.53  311.78 232.63 148.24 56.88];
y1 = y1-z1;
delka1 = length(x1);
vzdialenost1 = 0;

for k = 1: (delka1-1)
    vzdialenost_pom1 = sqrt( (x1(k+1)-x1(k))^2 + (y1(k+1)- y1(k))^2 ); 
    vzdialenost1 = vzdialenost1 + vzdialenost_pom1;
    
end

% prevod vzdialenosti z pixelov na mikrometre
% rozmery povodneho obrazu : 1439x1080 pixelov = 622.18x466.55 mikrometrov
% 1 mikrometer = 1439/622.18 = 2.312 pixelov
vzdialenost1 = vzdialenost1/2.312;
fprintf('Gulička č.2 prešla vzdialenosť : %1.2f mikrometrov\n',vzdialenost1);

% Bunka cislo 3
x2 = [586.48 624.38  672.83 735.36];
y2 = [800 800 800 800];
z2 = [249.38 177.03 98.41 16.81];
y2 = y2-z2;
delka2 = length(x2);
vzdialenost2 = 0;

for k = 1: (delka2-1)
    vzdialenost_pom2 = sqrt( (x1(k+1)-x1(k))^2 + (y1(k+1)- y1(k))^2 ); 
    vzdialenost2 = vzdialenost2 + vzdialenost_pom2;
    
end

% prevod vzdialenosti z pixelov na mikrometre
% rozmery povodneho obrazu : 1439x1080 pixelov = 622.18x466.55 mikrometrov
% 1 mikrometer = 1439/622.18 = 2.312 pixelov
vzdialenost2 = vzdialenost2/2.312;
fprintf('Gulička č.3 prešla vzdialenosť : %1.2f mikrometrov\n',vzdialenost2);
% pozn : bunka cislo 3 v case T5 uz nie je viditelna, pretoze sa presunula
% mimo snimanu oblast

% Vypocet priemernej rychlosti pohybu buniek
% Prebehlo 5 cyklov po 1.5 minúte = 7.5 minuty = 450 sekund
t = 450;
speed1 = vzdialenost/t;
speed2 = vzdialenost1/t;
speed3 = vzdialenost2/(t-90); % uvazujeme cas iba 4 cyklov = 360 sekund

fprintf('Gulička č.1 sa pohybuje rychlosťou : %1.3f mikrometrov za sekundu\n',speed1);
fprintf('Gulička č.2 sa pohybuje rychlosťou : %1.3f mikrometrov za sekundu\n',speed2);
fprintf('Gulička č.3 sa pohybuje rychlosťou : %1.3f mikrometrov za sekundu\n',speed3);

% meranie uhlov medzi jednotlivymi polohami buniek
% Bunka cislo 1
angle = [];
for j = 1: (delka-1)
 pomY(j) =   y(j+1)-y(j);                 
 pomX (j)=   x(j+1)-x(j);                 
 angle(j) = (atan2(pomY(j), pomX(j)) * 180 / pi);
 
end
% vektor naplneny hodnotamy uhlov
fprintf('Zmena uhlu guličky č.1 voči horizontu : %1.2f  stupňov;\n',angle);

% Bunka cislo 2
angle1 = [];
for j = 1: (delka1-1)
 pomY(j) =   y1(j+1)-y1(j);                 
 pomX (j)=   x1(j+1)-x1(j);                 
 angle1(j) = (atan2(pomY(j), pomX(j)) * 180 / pi);
 
end
% vektor naplneny hodnotamy uhlov
fprintf('Zmena uhlu guličky č.2 voči horizontu : %1.2f  stupňov;\n',angle1);
% Bunka cislo 3
angle2 = [];
for j = 1: (delka2-1)
 pomY(j) =   y2(j+1)-y2(j);                 
 pomX (j)=   x2(j+1)-x2(j);                 
 angle2(j) = (atan2(pomY(j), pomX(j)) * 180 / pi);
 
end
% vektor naplneny hodnotamy uhlov
fprintf('Zmena uhlu guličky č.3 voči horizontu : %1.2f  stupňov;\n',angle2);




