/origine1assexper2pilacon|P_2-P_1| { % P1 P2 ori.... 4 2 roll 2 copy translate exch 4 1 roll sub 3 1 roll exch sub 2 copy atan rotate 2 copy exch 4 1 roll mul 3 1 roll mul add sqrt } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /ellisse0 {% RMax Rmin ellisse0 exch dup 0 moveto 0 1 360 { 3 1 roll dup 3 2 roll dup 5 1 roll exch 5 2 roll 3 1 roll dup 4 1 roll sin mul 3 1 roll exch cos mul exch lineto} for stroke pop pop} def /ellisse {% RMax RMin x y X Y gsave origine1assexper2pilacon|P_2-P_1| pop ellisse0 grestore} def /semiellissesu0{ %RMax RMin exch dup 0 moveto 0 1 180 { 3 1 roll dup 3 2 roll dup 5 1 roll exch 5 2 roll 3 1 roll dup 4 1 roll sin mul 3 1 roll exch cos mul exch lineto} for stroke pop pop} def /L {200} def /epsilon {L 64 div} def 0.9 0.9 scale 0 20 translate 0 L 8 div L { 10 2 0 360 arc stroke} for L 8 div 2 mul epsilon sub L 16 div 6.5 L 8 div mul 10 L 2 mul 10 ellisse L 8 div epsilon sub L 16 div 2.5 L mul 8 div 10 2 L mul 10 ellisse L 8 div epsilon 3 mul add L 12 div 2 L mul 8 div epsilon add 10 2 L mul 10 ellisse 2 L mul 8 div L 10 div 1.5 L mul 8 div 10 2 L mul 10 ellisse 2 L mul 8 div epsilon 3 mul add L 10 div 6 L mul 8 div epsilon add 10 2 L mul 10 ellisse 5 L mul 8 div L 7 div 3.5 L mul 8 div 4 epsilon mul add 10 2 L mul 10 ellisse