%%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 [2 10] [225.000000 31.800000 2.000000] [750 3710] drawaxis
(1) 722 3906 0  0.00 [722 3816 57 120] Show
(21) 1143 3906 0  0.00 [1143 3816 114 120] Show
(41) 1593 3906 0  0.00 [1593 3816 114 120] Show
(61) 2043 3906 0  0.00 [2043 3816 114 120] Show
(81) 2493 3906 0  0.00 [2493 3816 114 120] Show
(101) 2914 3906 0  0.00 [2914 3816 172 120] Show
(120) 3364 3906 0  0.00 [3364 3816 172 120] Show
(140) 3814 3906 0  0.00 [3814 3816 172 120] Show
(160) 4264 3906 0  0.00 [4264 3816 172 120] Show
(180) 4714 3906 0  0.00 [4714 3816 172 120] Show
(200) 5164 3906 0  0.00 [5164 3816 172 120] Show
 -90 [2 10] [159.000000 -30.000000 2.000000] [750 3710] drawaxis
(-1.866) 334 3740 0  0.00 [334 3650 344 120] Show
(-1.493) 334 3422 0  0.00 [334 3332 344 120] Show
(-1.120) 334 3104 0  0.00 [334 3014 344 120] Show
(-0.746) 334 2786 0  0.00 [334 2696 344 120] Show
(-0.373) 334 2468 0  0.00 [334 2378 344 120] Show
(0.000) 391 2150 0  0.00 [391 2060 287 120] Show
(0.373) 391 1832 0  0.00 [391 1742 287 120] Show
(0.746) 391 1514 0  0.00 [391 1424 287 120] Show
(1.120) 391 1196 0  0.00 [391 1106 287 120] Show
(1.493) 391 878 0  0.00 [391 788 287 120] Show
(1.866) 391 560 0  0.00 [391 470 287 120] Show
750 530 4500 3180 setclipzone
[] 0 setdash
/closeflag false def
/localsave save def 
clear (drawpoly) 400 [ 17]
[750 1119 773 2357 795 1431 818 572 840 2006 863 1310 886 693 908 2357 931 1857 954 1382 
976 3121 999 2621 1021 2071 1044 3668 1067 2972 1089 2192 1112 3547 1134 2621 1157 1645 1180 2858 
1202 1857 1225 881 1247 2169 1270 1310 1293 530 1315 2048 1338 1431 1361 881 1383 2595 1406 2120 
1428 1645 1451 3359 1474 2809 1496 2192 1519 3710 1541 2930 1564 2071 1587 3359 1609 2383 1632 1382 
1655 2595 1677 1619 1700 693 1722 2048 1745 1268 1768 572 1790 2169 1813 1619 1835 1119 1858 2858 
1881 2383 1903 1883 1926 3547 1948 2930 1971 2234 1994 3668 2016 2809 2039 1883 2062 3121 2084 2120 
2107 1119 2129 2357 2152 1431 2175 572 2197 2006 2220 1310 2242 693 2265 2357 2288 1857 2310 1382 
2333 3121 2356 2621 2378 2071 2401 3668 2423 2972 2446 2192 2469 3547 2491 2621 2514 1645 2536 2858 
2559 1857 2582 881 2604 2169 2627 1310 2649 530 2672 2048 2695 1431 2717 881 2740 2595 2763 2120 
2785 1645 2808 3359 2830 2809 2853 2192 2876 3710 2898 2930 2921 2071 2943 3359 2966 2383 2989 1382 
3011 2595 3034 1619 3057 693 3079 2048 3102 1268 3124 572 3147 2169 3170 1619 3192 1119 3215 2858 
3237 2383 3260 1883 3283 3547 3305 2930 3328 2234 3351 3668 3373 2809 3396 1883 3418 3121 3441 2120 
3464 1119 3486 2357 3509 1431 3531 572 3554 2006 3577 1310 3599 693 3622 2357 3644 1857 3667 1382 
3690 3121 3712 2621 3735 2071 3758 3668 3780 2972 3803 2192 3825 3547 3848 2621 3871 1645 3893 2858 
3916 1857 3938 881 3961 2169 3984 1310 4006 530 4029 2048 4052 1431 4074 881 4097 2595 4119 2120 
4142 1645 4165 3359 4187 2809 4210 2192 4232 3710 4255 2930 4278 2071 4300 3359 4323 2383 4345 1382 
4368 2595 4391 1619 4413 693 4436 2048 4459 1268 4481 572 4504 2169 4526 1619 4549 1119 4572 2858 
4594 2383 4617 1883 4639 3547 4662 2930 4685 2234 4707 3668 4730 2809 4753 1883 4775 3121 4798 2120 
4820 1119 4843 2357 4866 1431 4888 572 4911 2006 4933 1310 4956 693 4979 2357 5001 1857 5024 1382 
5046 3121 5069 2621 5092 2071 5114 3668 5137 2972 5160 2192 5182 3547 5205 2621 5227 1645 5250 2858 
] dogrey localsave restore
fillsolid
/absolu true def
[] 0 setdash
-1 -1 200000 200000 setclipzone
 showpage

 clear end saved restore 
