%%Missile File : J.Ph Chancelier 1991
%%EndComments

/saved save def 
/$pictdict 100 dict def
$pictdict begin

/dogrey
{ /Arraybox exch def
	/Arraygrey exch def
	/nargs exch def 
	/func exch cvx def
	Arraybox 0 nargs getinterval Arraygrey 0 get func 
	1 1 Arraygrey length 1 sub 
	{/i exch def
	Arraybox i nargs mul nargs getinterval 
	Arraygrey i get func
	}for
} def
%--------------------------------------------
% [x y width height] nivgris drawbox 
% si niv gris > 1.0 alors on fait un stroke 
% sans closepath 
%--------------------------------------------
/drawbox 
	{/glev exch def /Ar exch def 
	/x Ar 0 get def /y Ar 1 get def 
	/w Ar 2 get def /h Ar 3 get def 
	newpath
	x y moveto
	x w add y lineto
	x w add y h add lineto
	x y h add lineto
	glev WhiteLev le {closepath glev Setgray eofill}
	{ 0 Setgray closepath stroke} ifelse 
} def 



%------------------------------------------------------
% trace de polygones rempli ou de polylignes 
%------------------------------------------------------
/absolu true def 
/closeflag false def 

/drawpoly
	{/glev exch def /Ar exch def
	newpath
	Ar 0 get Ar 1 get moveto 
	2 2 Ar length 1 sub 
	{/i exch def
	Ar i get Ar i 1 add get absolu {lineto} {rlineto} ifelse
	}for
	glev WhiteLev le 
	{ % polygone ferme et gris
	  closepath glev Setgray eofill}
	{ glev WhiteLev 2 add ge 
	   {%polygone ferme dont on efface l'interieur 
		%(peint avec un niveau de gris en blanc)
	    closepath WhiteLev 2 mul 2 add glev sub Setgray 
		  gsave eofill grestore 
	    0 Setgray stroke}
	   {%polygone simple eventuellement ferme
	    0 Setgray closeflag {closepath} if stroke} 
	ifelse }
	ifelse 
} def 


%------------------------------------------------------
% segments non connectes 
%------------------------------------------------------

/drawsegs
	{/glev exch def /Ar exch def
	newpath
	Ar 0 get Ar 1 get moveto Ar 2 get Ar 3 get lineto stroke 
	4 4 Ar length 3 sub 
	{/i exch def
	newpath 
	Ar i get Ar i 1 add get moveto
	Ar i 2 add get Ar i 3 add get lineto stroke 
	}for
} def 


%------------------------------------------------------
% unconected arrows
%-----------------------------------------------------

/drawarrows
	{/arsize10 exch def /Ar exch def
	Ar 0 get  Ar 1 get Ar 2 get Ar 3 get arsize10 drawarrow
	4 4 Ar length 3 sub 
	{/i exch def
	Ar i get Ar i 1 add get  Ar i 2 add get  Ar i 3 add get arsize10 
	drawarrow
	}for
} def 
		
/cos20 20 cos def
/sin20 20 sin def

/drawarrow                                
  { 
      /arsize exch 10 div def 
      /tipy exch def /tipx exch def       
      /taily exch def /tailx exch def
      /dx tipx tailx sub  def               
      /dy tipy taily sub  def               
      newpath tipx tipy moveto tailx taily lineto stroke   
      /norme dx dx mul dy dy mul add sqrt def 
      norme 1.e-8 ge 
	{
	 arsize dx mul norme div /dx1 exch def 
	 arsize dy mul norme div /dy1 exch def 
	 /depx tipx cos20 dx1 mul add def 
	/depy  tipy cos20 dy1 mul add def 
	newpath depx depy moveto 
	cos20 neg dx1 mul sin20 dy1 mul sub depx add
	sin20 dx1  mul cos20 dy1 mul sub depy add lineto 
	cos20 neg dx1 mul sin20 dy1 mul add  depx add
	sin20 neg dx1 mul cos20 dy1 mul sub depy add lineto closepath 
	0 setgray fill
	} {} ifelse 
  } def


%------------------------------------------------------
% cercle ou portions de cercle 
% attention argument (x y w h angl1*64 angl2*64 )
% devrait tracer une ellipse a modifier donc 
%------------------------------------------------------

/drawarc
	{/glev exch def /Ar exch def
	/cx Ar 0 get Ar 2 get 2 div add def 
	/cy Ar 1 get Ar 3 get 2 div add def 
	/hom Ar 3 get Ar 2 get div def 
	/Cmsave1 matrix def Cmsave1 currentmatrix 
	%-- on change de transformation pour faire homothetie en (x,y) 
	cx cy [1 0 0 hom 0 0 ] transform
	/t1 exch neg cy add def 
	/t2 exch neg cx add def 
	[1 0 0 hom t2 t1 ] concat 
	glev WhiteLev le
	{newpath
	cx cy moveto 
	cx cy Ar 2 get 2 div Ar 5 get 64 div neg
	 Ar 4 get 64 div neg  arc closepath
	glev Setgray eofill}
	{newpath
	cx cy Ar 2 get 2 div Ar 5 get 64 div neg Ar 4 get 64 div neg arc
	closepath 0 Setgray stroke} ifelse 
	Cmsave1 setmatrix clear} def 

%------------------------------------------------------
% centred hard mark 
%------------------------------------------------------

% x y str ShowCString 
% on fait un show mais string est centre autour du point (x,y) 

/ShowCString { /str exch def /y exch def /x exch def 
 newpath 
 x y moveto 
 str true charpath flattenpath pathbbox 
 /y2 exch def /x2 exch def /y1 exch def /x1 exch def 
 x 2 mul x2 x1 add 2 div sub 
 y 2 mul y2 y1 add 2 div sub moveto str show 
 } def 

/drawpolymark {/glev exch def /Ar exch def 
	Ar 0 get Ar 1 get HardMark ShowCString 
	2 2 Ar length 1 sub 
	{/i exch def
	Ar i get Ar i 1 add get HardMark ShowCString
	}for
} def 

%---------------------------------------------------
% chaines de caracteres 
%---------------------------------------------------
/FBox {/Ar exch def /rot exch def /str exch def /y exch def /x exch def 
 newpath Ar 0 get Ar 1 get moveto 
	/sina rot sin def /cosa rot cos def 
	/-sina sina neg def 
	[cosa -sina sina cosa 0 0 ] CtmModif
 Ar 2 get 0 rlineto 0 Ar 3 get neg rlineto Ar 2 get neg 0 rlineto 
 0 Ar 3 get  rlineto  stroke CtmRestore 
 x y str rot ShowRotate 
 } def 

% x y str ang Showrotate 
% inverse du sens trigo 

/ShowRotate { /ang exch def /str exch def 
	/y exch def /x exch def 
	x y moveto 
	/sina ang sin def /cosa ang cos def 
	/-sina 0 sina sub def 
	[cosa -sina sina cosa 0 0 ] CtmModif
	str show CtmRestore } def 

/HardMark (0) def 

%(Chaine de caracteres) x y flag angle [arfbox] Show

/Show { /Ar exch def 
	/rot exch def /flag exch def /y exch def /x exch def /str exch def 
	flag 1 eq 
	{x y str rot Ar FBox}
	{x y str rot ShowRotate } ifelse} def 

/L {/y2 exch def /x2 exch def /y1 exch def /x1 exch def 
    newpath x1 y1 moveto x2 y2 lineto stroke } def 

%---------------------------------------------------------
% drawing an axis 
% angle [nsep1,nsep2] ,[siz1,siz2,coeff] [x0,y0] drawaxis",
%---------------------------------------------------------

/drawaxis {/XX exch def /Arsize exch def /Arsep exch def /ang exch def 
	/Cmsave1 matrix def Cmsave1 currentmatrix 
	/sina ang sin def /cosa ang cos def /-sina sina neg def 
	/x XX 0 get def /y XX 1 get def
	%-- on change de transformation pour tourner autour de (x,y) 
	x y [cosa sina -sina cosa 0 0 ] transform
	/t1 exch neg y add def 
	/t2 exch neg x add def 
	[cosa sina -sina cosa t2 t1 ] concat 
	newpath x y moveto 0 Arsize 1 get Arsize 2 get mul rlineto
	stroke 
	0 1 Arsep 1 get 1 sub
	{newpath 
	x y moveto 
	0 1 Arsep 0 get 1 sub
		{Arsize 0 get 0  rlineto
		 0 Arsize 1 get rlineto 
	 	0 Arsize 1 get  neg rlineto}
		for 
	currentpoint /y exch def /x exch def 
	stroke 
	newpath x y moveto 0 Arsize 1 get Arsize 2 get mul rlineto
	stroke }
	for 
	Cmsave1 setmatrix } def 



%---------------------------------------------------------
% change and restore CTM
%---------------------------------------------------------

/CtmModif {/arg exch def 
	/Cmsave matrix def 
	Cmsave currentmatrix 
	[1 0 0 -1 0 0 ] concat 
	arg concat } def 

/CtmRestore { Cmsave setmatrix } def 

/Thickness { 2 div /th exch def th 0 le {/th 0.1 def} if th setlinewidth} def 

/WhiteLev 15 def

/Setgray { WhiteLev div setgray} def 

/fillsolid { 0 setgray } def 

%--------------------------------------
% clip zones ( rectangle ) 
%-------------------------------------

/setclipzone {initclip 
	/h exch def /w exch def /y exch def /x exch def 
	newpath x y moveto w 0 rlineto 0 h rlineto w neg 0 rlineto 
	0 h neg rlineto closepath clip} def 

%------------------
% to change the position of a picture 
%------------------
/cm{28.346457 mul}def

/DesPosi { /YH exch def /XW exch def /YP exch def /XP exch def 
	XP cm YP cm neg translate 
	XW cm 6000 div YH cm 4240 div  scale } def 

0 setlinecap 
2 setlinejoin 
1 setlinewidth

%-- Color database 
/ColorR [0.000000 0.000000 0.000000 0.529412 0.498039 0.133333 0.000000 0.878431 0.000000 1.000000 1.000000 1.000000 0.933333 1.000000 1.000000 0.960784 1.000000 ] def
/ColorG [0.000000 0.000000 0.000000 0.807843 1.000000 0.545098 1.000000 1.000000 1.000000 0.647059 0.000000 0.000000 0.509804 1.000000 0.843137 0.960784 1.000000 ] def
/ColorB [0.000000 0.501961 1.000000 0.921569 0.831373 0.133333 0.000000 1.000000 1.000000 0.000000 0.000000 1.000000 0.933333 0.000000 0.000000 0.862745 1.000000 ] def

/Setcolor {/i exch def ColorR i get ColorG i get ColorB i get setrgbcolor } def 

%------ End Main Program ------%
% XP YP XW YW DesPosi in the following code 
% will output the picture in the rectangle defined by 
% upper left point (XP,YP) wide :XW Height: YW
% the coordinates are given in centimeter and 
% are the (0,0) point is the down-left point of the paper 


% Dessin en bas a gauche de taille 3000,2120
[0.5 10 div 0 0 0.5 10 div neg  0 2120 10 div] concat
0 Thickness
% 3 setalufunction
-1 -1 200000 200000 setclipzone
[] 0 setdash
/Times-Roman findfont 100 scalefont setfont
fillsolid
/WhiteLev 16 def
/localsave save def 
clear (drawbox) 4 [ 17]
[750 530 4500 3180 
] dogrey localsave restore
fillsolid
 0 [1 2] [2250.000000 31.800000 2.000000] [750 3710] drawaxis
/Times-Roman findfont 80 scalefont setfont
(0) 727 3876 0  0.00 [727 3806 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 613 3996 0  0.00 [613 3886 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(1) 2977 3876 0  0.00 [2977 3806 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 2863 3996 0  0.00 [2863 3886 134 140] Show
/Times-Roman findfont 80 scalefont setfont
(2) 5227 3876 0  0.00 [5227 3806 46 90] Show
/Times-Roman findfont 120 scalefont setfont
(10) 5113 3996 0  0.00 [5113 3886 134 140] Show
/Times-Roman findfont 80 scalefont setfont
/Times-Roman findfont 120 scalefont setfont
 -90 [10 2] [159.000000 -30.000000 2.000000] [750 3710] drawaxis
(-40) 476 3745 0  0.00 [476 3635 202 140] Show
(-25) 476 2155 0  0.00 [476 2045 202 140] Show
(-10) 476 565 0  0.00 [476 455 202 140] Show
750 530 4500 3180 setclipzone
[20 50 20 50 ] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 402 [ 17]
[750 1595 773 1595 795 1595 818 1595 840 1596 863 1596 885 1596 908 1596 930 1597 953 1597 
975 1597 998 1598 1020 1598 1043 1598 1065 1599 1088 1599 1110 1600 1133 1600 1155 1600 1178 1601 
1200 1601 1223 1602 1245 1603 1268 1603 1290 1604 1313 1604 1335 1605 1358 1606 1380 1606 1403 1607 
1425 1608 1448 1609 1470 1610 1493 1611 1515 1612 1538 1613 1560 1614 1583 1615 1605 1616 1628 1617 
1650 1618 1673 1619 1695 1621 1718 1622 1740 1624 1763 1625 1785 1627 1808 1628 1830 1630 1853 1632 
1875 1634 1898 1636 1920 1638 1943 1640 1965 1642 1988 1645 2010 1647 2033 1650 2055 1652 2078 1655 
2100 1658 2123 1661 2145 1664 2168 1667 2190 1670 2213 1674 2235 1677 2258 1681 2280 1685 2303 1689 
2325 1693 2348 1697 2370 1702 2393 1707 2415 1711 2438 1716 2460 1722 2483 1727 2505 1733 2528 1738 
2550 1744 2573 1750 2595 1757 2618 1763 2640 1770 2663 1777 2685 1784 2708 1792 2730 1799 2753 1807 
2775 1815 2798 1824 2820 1832 2843 1841 2865 1850 2888 1859 2910 1869 2933 1878 2955 1888 2978 1899 
3000 1909 3023 1920 3045 1931 3068 1942 3090 1953 3113 1965 3135 1977 3158 1989 3180 2002 3203 2014 
3225 2027 3248 2040 3270 2054 3293 2067 3315 2081 3338 2095 3360 2109 3383 2124 3405 2138 3428 2153 
3450 2168 3473 2184 3495 2199 3518 2215 3540 2230 3563 2246 3585 2263 3608 2279 3630 2296 3653 2312 
3675 2329 3698 2346 3720 2363 3743 2381 3765 2398 3788 2416 3810 2433 3833 2451 3855 2469 3878 2487 
3900 2506 3923 2524 3945 2543 3968 2561 3990 2580 4013 2599 4035 2617 4058 2636 4080 2655 4103 2675 
4125 2694 4148 2713 4170 2733 4193 2752 4215 2772 4238 2791 4260 2811 4283 2831 4305 2850 4328 2870 
4350 2890 4373 2910 4395 2930 4418 2950 4440 2970 4463 2991 4485 3011 4508 3031 4530 3051 4553 3072 
4575 3092 4598 3112 4620 3133 4643 3153 4665 3174 4688 3194 4710 3215 4733 3235 4755 3256 4778 3277 
4800 3297 4823 3318 4845 3339 4868 3360 4890 3380 4913 3401 4935 3422 4958 3443 4980 3464 5003 3484 
5025 3505 5048 3526 5070 3547 5093 3568 5115 3589 5138 3610 5160 3631 5183 3652 5205 3673 5228 3694 
5250 3715 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
750 530 4500 3180 setclipzone
[50 20 50 20 ] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 4 [ 17]
[750 1590 3000 1590 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
750 530 4500 3180 setclipzone
[] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 4 [ 17]
[3000 1590 5250 3710 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
750 530 4500 3180 setclipzone
[] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 4 [ 17]
[3000 1590 3000 1908 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
(  ) 2900 349 0  0.00 [2900 239 134 140] Show
(Log scale ) 5254 3529 0  0.00 [5254 3419 674 140] Show
(  ) 1025 482 0  0.00 [1025 372 134 140] Show
 showpage

 clear end saved restore 
