function visu2_conv_anim(f1,f2)
% Propose une visualisation animée de la convergence comparée de deux suites.
%
% variables d'entrée
% f1 désigne un vecteur de n1 valeurs qui seront représentées en polaire
% par pas angulaire de 2*pi/n1;
% le rayon est l'écart de chaque valeur à la dernière, considérée comme limite.
% Idem en f2.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%              Fonctions appelées                                                                    *
%                                                  
%                                           
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Tests d'entrée
if nargin~=2
    error('Nombre des arguments incorrect');
end

% ménage!
clf;

% Calibrage des données: ces constantes modifiables par l'utilisateur
% pourraient aussi etre passées comme champs complémentaires.
% nul_seuil: un nombre inférieur en valeur absolue à nul_seuil est considéré nul.
% rap_seuil: pourcentage de la fenetre en dessous duquel on dilate l'image.
% u: unité de pause en secondes; règle la vitesse de production des images.


nul_seuil=0.5E-11;
rap_seuil=0.1;
u=1;

% détermination des rayons vecteurs
r1=abs(f1-f1(size(f1,2)));ind1=find(r1>nul_seuil);
r1=r1(ind1);
r2=abs(f2-f2(size(f2,2)));ind2=find(r2>nul_seuil);
r2=r2(ind2);

% calibrage des axes et choix du pas angulaire
alph1=2*pi/size(r1,2);
alph2=2*pi/size(r2,2);
coef=1.1*min(r1(1),r2(1));
lim=[-coef coef -coef coef];

% création des valeurs qui s'enroulent autour de
% la limite avec ajustement d'échelle automatique

tailles=[size(r1,2),size(r2,2)];
nb_pas1=min(tailles);nb_pas2=max(tailles);
n=1;

% préparation des fenetres
subplot(2,1,1);title('Convergence de suite 1');
subplot(2,1,2);title('Convergence de suite 2');
% on peut faire plus rusé pour le titre!
c=rap_seuil*coef;
X=[-c,-c,c,c,-c];Y=[-c,c,c,-c,-c];

while n<=nb_pas1
    if  (1/coef*min(r1(n),r2(n))>rap_seuil)
        
        x1=r1(n)*cos((n-1)*alph1);
        y1=r1(n)*sin((n-1)*alph1);
        x2=r2(n)*cos((n-1)*alph2);
        y2=r2(n)*sin((n-1)*alph2);
        
        % tracé dans les deux fenetres
        subplot(2,1,1);axis(lim);
        line([0,x1],[0,y1]);hold on;
        subplot(2,1,2);axis(lim);
        line([0,x2],[0,y2]);hold on;
        
        % prise d'une pause (bien méritée!)
        pause(2*u);
        
        % mise à jour de n
        n=n+1;
    else
       % annonce d'agrandissement
       c=rap_seuil*coef;
       X=[-c,-c,c,c,-c];Y=[-c,c,c,-c,-c];
       subplot(2,1,1);axis(lim);
       plot(X,Y,'r.--');
       hold on;pause(2)
       subplot(2,1,2);axis(lim);
       plot(X,Y,'r.--');
       hold on;pause(2);
       % changement d'échelle
       k=1.1/coef*min(r1(n),r2(n));
       lim=k*lim;coef=k*coef;
   end
end 
% Variante : il est possible d'utiliser
% la fonction movie et de créer une animation

% indication de fin de convergence

if nb_pas1~=nb_pas2
    ind=find(tailles==nb_pas2);
    r3=eval(['r' num2str(ind)]);
    alph3=eval(['alph' num2str(ind)]);
    num=3-ind;
    subplot(2,1,num);axis(lim);
    plot([0],[0],'rp-');legend('Limite ''atteinte''',0);
    hold on;
    % préparation de fin de tracé
    num=3-num;
else
    subplot(2,1,1);axis(lim);
    plot([0],[0],'rp-');legend('Limite ''atteinte''',0);
    hold on;subplot(2,1,2);axis(lim);
    plot([0],[0],'bp-');legend('Limite ''atteinte''',0);
    hold on;
end

% tracé de la courbe restante éventuelle

while n<=nb_pas2
    if  (1/coef*r3(n)>rap_seuil)
        
        x3=r3(n)*cos((n-1)*alph3);
        y3=r3(n)*sin((n-1)*alph3);
        
        % tracé dans la fenetre convenable
        subplot(2,1,num);axis(lim);
        line([0,x3],[0,y3]);hold on;
        
        % prise d'une pause (bien méritée!)
        pause(2);
        
        % mise à jour de n
        n=n+1;
    else
       % annonce d'agrandissement
       c=rap_seuil*coef;
       X=[-c,-c,c,c,-c];Y=[-c,c,c,-c,-c];
       subplot(2,1,num);axis(lim);
       plot(X,Y,'r.--');
       hold on;pause(2);
       % changement d'échelle
       k=1.1/coef*r3(n);
       lim=k*lim;coef=k*coef;
   end
end

% limite atteinte
subplot(2,1,num);axis(lim);
plot([0],[0],'bp-');legend('Limite ''atteinte''',0);
hold off;

% fin de fonction