jpegmode
%quadrillage marks
400 setheight
-12 8 setxrange
-6.5 14.5 setyrange
%% la plan de base
/P1 {-9 -4} def
/P2 {4 -6} def
/P3 {8.5 -1} def
/o {0 0 0} def
/o' {0 0 10} def
/vect_I {15 cos 15 sin} def
/vect_J {135 cos 135 sin .8 mulv} def
/vect_K {0 1} def
/xyz2xy {
3 dict begin
/z exch def
/y exch def
/x exch def
vect_I x mulv
vect_J y mulv
vect_K z mulv
addv addv
end
} def
[/O /O']
[o o'] {xyz2xy} capply
mapnp
/r1 5 def
/r2 1.5 def
/ell [O r1 r2 0] def
/ell' [O' r1 r2 0] def
0 ell epoint /A defpoint
0 ell' epoint /A' defpoint
A' A .8 hompoint /a defpoint
180 ell epoint /B defpoint
180 ell' epoint /B' defpoint
/M {-7 -2} def
/N {-.5 -4} def
%% construction de l'intersection
/manip {
3 dict begin
/M defpoint
%% pour le point M
M A ell interdroiteell /M1 defpoint popp
A A' M1 paral M a interdroite /M2 defpoint
%% gsave
%% orange
%% .4 setlinewidth
%% mixte
%% [a M A] ligne
%% pointilles
%% [M1 M2] ligne
M2
%% grestore
end
} def
%% une astuce pour corriger le bug d'implementation dans
%% l'algorithme de Hobby : on rend la fonction arg continue...
/arg {argc} def
noir
[4.5 -35 dup neg nto] {M N xdpoint manip} apply
%%dup {times} plot
{1 1} papply
[ exch aload pop {down} a] draw
/dotscale {2 dup} def
[a O O' A A'] {times} plot
1.2 setlinewidth
-180 0 ell Ellipse
ell' ellipse
[A A'] ligne
[B B'] ligne
M N 1.5 hompoint N 1.5 trait
gsave
.8 setlinewidth
pointilles
0 180 ell Ellipse
grestore
2 setlinewidth
[-12 P2 P1 xdpoint P2 P3] ligne
12 setfontsize
setTimesItalic
(a) a drtext
(A) A drtext
(A') A' drtext
(O) O drtext
(O') O' drtext
(M) M dltext
(N) N dltext
|