
function [hmax,dmax,tfin,xht]=calcola_gittata (v,angolo)

%--------------------------------------------------------------------------
% * input:
% v: velocita' in m/s
% angolo: angolo iniziale in gradi
% * output:
% hmax: altezza massima raggiunta
% dmax: distanza massima raggiunta
% tfin: tempo impiegato per cadere al suolo
% xht: matrice N x 3 la cui prima colonna e' "x(t)", la seconda "h(t)",
%      la terza "t".
%--------------------------------------------------------------------------

%--------------------------------------------------------------------------
% NOTA: I comandi del seno e del coseno in gradi sono:
%
%  sind   Sine of argument in degrees.
%     sind(X) is the sine of the elements of X, expressed in degrees.
%     For integers n, sind(n*180) is exactly zero, whereas sin(n*pi)
%     reflects the accuracy of the floating point value of pi.
%
%  cosd   Cosine of argument in degrees.
%     cosd(X) is the cosine of the elements of X, expressed in degrees.
%     For odd integers n, cosd(n*90) is exactly zero, whereas cos(n*pi/2)
%     reflects the accuracy of the floating point value for pi.
%--------------------------------------------------------------------------

g=9.81; % gravita'

step=1/10000; % step temporale

%-----------------------
% primo punto gittata
%-----------------------
k=1;

t(k)=step;
xL=v*t(k)*cosd(angolo);
hL=v*t(k)*sind(angolo)-g*(t(k))^2/2;

xht=[xL hL t(1)]; % prima riga di xht

%-----------------------
% altri punti gittata
%-----------------------
while hL > 0
    k=k+1; % importante incrementare il contatore (ciclo-while!)
    t(k)=k*step; 
    xL=v*t(k)*cosd(angolo);
    hL=v*t(k)*sind(angolo)-g*(t(k))^2/2;
    xht=[xht; xL hL t(k)]; % la i-sima riga e' assegnata come richiesto
end

hmax=max(xht(:,2)); % massima componente della seconda colonna di xht
dmax=xht(end-1,1);
tfin=xht(end-1,3);


