%@AUTEUR:Guillaume Connan
prologues:=2;

input courbes;
input geo;

color vert_e, turquoise, orange, vert_fonce, rose, vert_mer, bleu_ciel, or, rouge_v,bleu_m,bleu,bleu_f;
vert_e:=(0,0.790002,0.340007);
turquoise:=(0.250999,0.878399,0.815699);
orange:=(0.589999,0.269997,0.080004);
vert_fonce:=(0,1.4*0.392193,0);
rose:=(1.0, 0.752907, 0.796106);
bleu_ciel:=(1.2*0.529405,1.2*0.807794,1);%.2*0.921598);
or:=(1,0.843104,0);
rouge_v:=(0.829997,0.099994,0.119999);
bleu_m:=(0.7*0.529405,0.7*0.807794,0.7);%*0.921598);
bleu_f:=(0.211762,0.3231176,0.3686392);
bleu:=(0.529405,0.807794,1);

% Déclarations des constantes %
ux:=1cm; uy:=0.8*ux;
xmin:=-.5; xmax:=7.5;
ymin:=-.5; ymax:=6.5;
coefficient:=1; % coefficient d'échelle

vardef axes =
  drawarrow (ux*xmin,0) -- (ux*xmax,0); % axe des x
  drawarrow ((0,uy*ymin) -- (0,uy*ymax))  ; % axe des y
  label.lrt(btex $x$ etex,(xmax*ux,0)); % label de l'axe des x
  label.urt(btex $y$ etex,(0,ymax*uy)); % label de l'axe des y
enddef;


beginfig(1);
  numeric aa,bb,cc;
%Axe
  axes;
  label.llft(btex $0$ etex,(0,0));
%label.llft(btex $0$ etex,(-.1*ux,-.15*uy));
  
%Fonction, graphe
  vardef f(expr x) =2.3*sqrt(x) enddef;
  
  vardef trace (suffix g)(expr a,b,inc) =
    save i; numeric i;
    for i=a step inc until b:
      (i*ux,f(i)*uy) ..
    endfor (b*ux,f(b)*uy)
  enddef;
  
  draw trace(g,0,xmax,.1) withcolor 0.6white;
  
%Points sur le graphe
  pair A[],M[],O[];
  
  u:=.7;%facteur d'échelle
  aa:=2;bb:=5;cc:=9;%numeros des points particuliers
  
  for i=1 upto 12: A[i]:=(i*u*ux,0);% A comme abscisse
    M[i]:=(i*u*ux,f(i*u)*uy); %M comme courbe !!
    O[i]:=(0,f(i*u)*uy); %O comme ordonnée
  endfor ;
  
  for i=1 upto 10:
    draw M[i] withpen pencircle scaled 4bp withcolor 0.3white;
  endfor ;
  
  for i=aa,bb,cc:
    draw A[i]--M[i]--O[i] dashed evenly;
  endfor;
  
  label.bot(btex $n$ etex,A[aa]);
  label.bot(btex $N_1$ etex,A[bb]);
  label.bot(btex $N_2$ etex,A[cc]);
  
  label.lft(btex $u_n$ etex,O[aa] shifted (0,.1*uy));
  label.lft(btex $u_{N_1}$ etex,O[bb]  shifted (0,.1*uy));
  label.lft(btex $u_{N_2}$ etex,O[cc]  shifted (0,.2*uy));
  
%Tracé des droites
  pair C,D;
  
  C=1/3(O[bb]+2O[bb-1]); %Point seuil
  D=1/3(O[cc]+2O[cc-1]); %Point seuil
  
  pickup pencircle scaled 2bp;
  
  draw C--C  shifted (xmax*ux,0) withcolor bleu_m;
  draw D--D shifted (xmax*ux,0) withcolor bleu_m;
  
  label.lft(btex $A_1$ etex,C shifted (0,-.1*uy));
  label.lft(btex $A_2$ etex,D shifted (0,-.1*uy));
endfig;
end