function [thetan,omegan,gaman,a]=gerar_1(theta0,thetaF,T,w0)

% Constantes
Wmax=3.6;                   % Velocidade máxima do servo (graus/tick)
gstop=0.05;                 % Desaceleração de paragem (graus/tick^2)

deltaTh=thetaF-theta0;      % Variação angular de deslocamento

% Limitação da velocidade (estes cálculos presumem velocidade inicial nula)
wmax=3/2*abs(deltaTh)/T;    % Velocidade máxima atingida
if (wmax>Wmax)              % Se ultrapassou a velocidade máxima permitida, ajustar!
    T=3/2*abs(deltaTh)/Wmax;
end

% Coeficientes do polinómio
if (T==inf)
    T=abs(w0)/gstop;
    a0=theta0;
    a1=w0;
    a2=-1/2*gstop;
    a3=0;
else
    a0=theta0;          % Posição inicial
    a1=0;               % Velocidade inicial
    a2=3*deltaTh/T^2;   % Factor proporcional a acelaração
    a3=-2*deltaTh/T^3;  % Factor proporcional a derivada da aceleração
end

a=[a0 a1 a2 a3];

tn=0:1:T;

syms t
theta=a0+a1*t+a2*t.^2+a3*t.^3;
omega=diff(theta,t);
gama =diff(omega,t);

thetan=subs(theta,t,tn);
omegan=subs(omega,t,tn);
gaman =subs(gama, t,tn);

figure(3);
plot(tn,gaman);
figure(2);
plot(tn,omegan);
figure(1);
plot(tn,thetan);
