V10/cmd/picasso/picasso.ps

%!
%	@(#)newpic newpic.ps 1.0b@(#)	10/27/89

/s /stroke load def
/f /fill load def
/n /newpath load def
/c /closepath load def
/l /lineto load def
/g /setgray load def
/d /setdash load def
/rgb /setrgbcolor load def
/w /setlinewidth load def
/gs /gsave load def
/gr /grestore load def
/slj /setlinejoin load def
/clj /currentlinejoin load def
/magnification 1 def

/PIC { % tx ty sx sy $	-- place origin at center
	clippath pathbbox newpath
	exch 4 -1 roll add 2 div 3 1 roll add 2 div translate
	scale magnification magnification scale translate
} bind def

/L { % p*N N p $
	moveto { lineto } repeat
} bind def

/rL { % p*N r N p $
	moveto
	1 sub
	{ 3 1 roll 4 index 4 index 4 index arcto 4 { pop } repeat } repeat
	pop
	lineto
} bind def

/T { % string noofspace width p $
	moveto
	2 index stringwidth pop sub exch
	dup 0 eq
		{ pop 1 index length div 0 3 -1 roll ashow }
		{ div 0 8#40 4 -1 roll widthshow }
	ifelse
} bind def

/AT { % string noofspace width $
	2 index stringwidth pop sub exch
	dup 0 eq
		{ pop 1 index length div 0 3 -1 roll ashow }
		{ div 0 8#40 4 -1 roll widthshow }
	ifelse
} bind def

/Q { % llx lly urx ury $
	2 copy
	moveto
	3 index exch lineto
	3 1 roll dup 3 1 roll lineto lineto
	closepath
} bind def

/rQ { % llx lly urx ury r $
	2 index 2 index 5 index add 2 div moveto
	3 copy 7 index 2 index 3 -1 roll arcto 4 { pop } repeat
	4 index 2 index 1 index 6 index 4 index arcto 4 { pop } repeat
	5 copy exch pop 2 index exch arcto 4 { pop } repeat
	2 index 5 1 roll arcto 5 { pop } repeat
	closepath
} bind def

/E { % 0 0 1 ang1 ang2 matrix 
	matrix currentmatrix
	exch
	concat
	newpath
	6 1 roll
	arc
	setmatrix
} bind def

/Sp { % p*N N p p $
	2 copy
	moveto
	4 copy
	exch 4 -1 roll add 2 div 3 1 roll add 2 div lineto
	5 -1 roll
	{
		6 copy pop pop 2 copy
		exch 8 -1 roll sub 6 div 3 index exch sub
		exch 7 -1 roll sub 6 div 2 index exch sub
		6 2 roll 4 copy
		exch 4 -1 roll exch sub 6 div 4 index add
		3 1 roll sub 6 div 2 index add
		6 2 roll
		exch 4 -1 roll add 2 div 3 1 roll add 2 div
		curveto
	} repeat
	pop pop
	lineto
} bind def