%@DATE: 30 mai 2005

input fichierps;

InitFichierPS(-200,-120,200,180);
u = 0.85cm;

% Le points fixe.
pair A;
A = (0,4u);

% Le cercle.
path cA;
cA = fullcircle scaled 4u shifted A;

% Les articulations.
pair D,B,C,F,G,E;

% Longueur des tiges qui s'appuient sur la droite.
l := 6.5u;

% Position des articulationssur les tiges (facteur).
f := 0.8;

vardef Point(expr p) =
    draw p withpen pencircle scaled 4;
    draw p withpen pencircle scaled 3 withcolor white;
enddef;

% L'ellipse;
path e;


for i=0 upto 90:
  beginfig(i+1);
    
    D := point (8*i/90) of cA;
    x := xpart D; y := ypart D;
    k := y/l;
    B := (x-l*sqrt(1-k*k),0);
    C := 2[B,(x,0)];
    F := f[D,B];
    G := f[D,C];
    E := 2[D,.5[F,G]];    

    fill cA withcolor 0.8white;
         
    drawoptions(withcolor 0.6white);    
    draw cA;
    draw (-1.3l,0)--(1.3l,0);
    drawoptions();

    drawarrow subpath (0,8*i/90) of cA;
    
    if i=0: 
	e := E;
    else:
	e := e -- E;
	draw e withpen pencircle scaled 1 withcolor blue;
    fi
        
    drawoptions(withpen pensquare scaled 2 withcolor (1,0.08,0.58));	
    draw A--D;
    draw D--B;
    draw D--C;
    draw F--E;
    draw G--E;
    drawoptions();
	
    Point(A);
    Point(B);
    Point(C);
    Point(D);
    Point(E); 
    Point(F);
    Point(G);   

  endfig;
endfor;

end