Ellipsographe par anti-parallèlogramme
%@DATE: 30 mai 2005
input fichierps;
InitFichierPS(-120,-120,210,120);
u = 1cm;
% Les points fixes
pair A, B;
A = (0,0);
B = (3u,0);
% Les deux cercles
path cA, cB;
cA = fullcircle scaled 8u shifted A;
cB = fullcircle scaled 8u shifted B;
% Les articulations.
pair C,D,E;
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);
C := point (8*i/90.5+0.01) of cB;
D := (C + A -B) reflectedabout(A,C);
E := (B--C) intersectionpoint (A--D);
fill cB withcolor 0.8white;
drawoptions(withcolor 0.6white);
draw cA;
draw cB;
drawoptions();
drawarrow subpath (0,8*i/90.5) of cB;
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 B--C;
draw C--D;
drawoptions();
Point(A);
Point(B);
Point(C);
Point(D);
Point(E);
endfig;
endfor;
end