Présentation de couverture.jps

/syracuse/texpng/jpv/guide_jps/couverture.jpg
-2 7 setxrange -3 7 setyrange /L1 .7 def /l1 4 def /L2 8 def /l2 .5 def /L3 1 def /l3 .7 def /L4 3 def /l4 .7 def /dt .1 def %% ======== /A2 {0 2} def /A1 {l2 2 div l1 2 div add 0} def /A3 {A1 .8 mulv 0 L1 2 div L3 2 div add dt add addv} def /A'3 {A3 projx 0 L1 2 div L3 2 div add dt add neg addv} def /A4 {l1 l4 2 div add l2 2 div add 0} def /A5 {l1 l2 2 div add L4 2 div .8 mul} def /A {l2 2 div 0} def /B {A3 projx l3 -2 div 0 addv} def %% syntaxe : A Lx Ly rect@ngle /rect@ngle { 2 dict begin /Ly exch 2 div def /Lx exch 2 div def stranslate newpath Lx Ly smoveto 0 Ly -2 mul srlineto Lx -2 mul 0 srlineto 0 Ly 2 mul srlineto closepath end } def %% syntaxe : A Lx Ly rectangle /rectangle { 2 dict begin gsave rect@ngle stroke grestore end } def %% syntaxe : A Lx Ly rectangle* /rectangle* { 4 copy rectangle 2 dict begin gsave rect@ngle clip fillstyle grestore end } def %% ============== /fillstyle {.3 setlinewidth hachure} def %% .2 .2 setquadrillagestep %% quadrillage %% %% gsave %% 1 dict begin %% 1 1 setquadrillagestep %% /quadrillagegray 0 def %% quadrillage %% end %% grestore %% %% marks %% [A1 A2 A3 A'3 A4 A5 A B] points gsave mixte traceaxes grestore .8 setlinewidth A1 l1 L1 rectangle A2 l2 L2 rectangle A3 l3 L3 rectangle* A'3 l3 L3 rectangle* A4 l4 L4 rectangle A B .7 5 (O) ressort /ell { A2 0 L2 2 div translatepoint l2 .25 } def -225 45 ell Ellipse gsave 50 [ell 0] epoint stranslate .4 .4 scale [ell 0] ellb 2 sqrt mul [ell 0] ella neg 2 sqrt mul atan 10 sub rotate arrow grestore gsave newpath A5 smoveto A5 .17 90 270 sarc clip fill grestore