autocrop 15 setxunit %quadrillage marks -22 8 setxrange -8 18 setyrange %% le plan de base /P1 {-9 -5} def /P2 {4 -7} def /P3 {8.5 0} def /o {0 0 0} def /i {0 0 7} def /o' {0 0 14} def /M {-12 0} def /N {-7 -3} 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 [/I /O /O'] [i o o'] {xyz2xy} capply mapnp /r1 6 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 180 ell epoint /B defpoint 180 ell' epoint /B' defpoint /les_points [] def /les_points_bis [] def /avec_marque {false} def /manip { i M N xdpoint /K defpoint O K ell interdroiteell /k defpoint /k' defpoint O O' k paral I K interdroite /K' defpoint O O' k' paral I K interdroite /K" defpoint /les_points [les_points aload pop K'] store /les_points_bis [les_points_bis aload pop K"] store /i i 1 add store avec_marque { orange [k' K K"] ligne [k K'] ligne [k' K"] ligne noir [K K' K"] {times2} plot } if } def gsave .8 setlinewidth pointilles /i -30 def 30 {manip} repeat /i 1 def % 40 {manip} repeat % /i -10 store manip grestore /fillstyle {.9 setgray fill} def /arg {argc} def [ [les_points aload pop les_points_bis aload pop les_points 0 getp ] {1 1} papply aload pop pop pop ] draw* gsave pointilles /les_points [] def /les_points_bis [] def /avec_marque true store /i -18 store manip /i -14 store manip /i -12 store manip /i -10 store manip /i -13 store manip /i -8 store manip /i -5 store manip grestore /dotscale {2 dup} def [I O O'] {times} plot .8 setlinewidth 1.2 setlinewidth -180 0 ell Ellipse ell' ellipse [A A'] ligne [B B'] ligne M N 1.65 hompoint N 1.4 trait gsave .8 setlinewidth pointilles 0 180 ell Ellipse [O O'] ligne grestore 2 setlinewidth [-12 P2 P1 xdpoint P2 P3] ligne 12 setfontsize setTimesItalic (I) I drtext (O) O drtext (O') O' drtext (d) 2 M N ydpoint urtext % (M) M dltext % (N) N dltext