From 18b20846c80d42e997667bcc0a250037e358f1c5 Mon Sep 17 00:00:00 2001 From: erg Date: Sat, 5 Dec 2009 22:45:49 +0000 Subject: [PATCH] Add additional test data file --- rtest/graphs/dice.ps | 274 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 rtest/graphs/dice.ps diff --git a/rtest/graphs/dice.ps b/rtest/graphs/dice.ps new file mode 100644 index 000000000..fe4211b24 --- /dev/null +++ b/rtest/graphs/dice.ps @@ -0,0 +1,274 @@ +%! PostScript + +/strdimensions { + gsave + newpath + 0 0 moveto + false charpath flattenpath pathbbox + exch 4 -1 roll sub + 3 1 roll exch sub + grestore +} def + +/die1_data [ +% [50 33 33 48 67 67 50] +% [27 7 31 34 30 5 0] + [50 33 33 48 67 67 50] + [27 7 31 34 30 5 0] + [ + [50 30 2 1 0] + [54 21 1.2 2 0] + [63 11 1.2 2 0] + [46 21 1.2 2 0] + [46 7 1.2 2 0] + ] +]def + +/die2_data [ +% [15 0 0 19 40 40 15] +% [25 9 31 33 27 2 0] + [15 0 0 19 40 40 15] + [25 7 31 33 27 0 -3] + [ + [18 29 2 1 0] + [28 12 2 2 0] + [21 4 2 2 0] + [21 19 2 2 0] + [35 5 2 2 0] + [35 20 2 2 0] + [4 10 1.2 2 0] + [11.5 20.5 1.4 2 0] + ] +] def + +% cx cy rx ry ang mk_ellipse - +/mk_ellipse { + /ang exch def + /ry exch def + /rx exch def + /cy exch def + /cx exch def + + gsave + newpath + cx cy translate + ang rotate + rx ry scale + 0 0 1 0 360 arc + fill + grestore +} def + +/fill_die { + 1 setgray + newpath + xval 1 get yval 1 get moveto + xval 2 get yval 2 get lineto + xval 3 get yval 3 get lineto + xval 4 get yval 4 get lineto + xval 5 get yval 5 get lineto + xval 6 get yval 6 get lineto + closepath + fill +} def + +/outline_die { + 0 setgray + newpath + xval 1 get yval 1 get moveto + xval 2 get yval 2 get lineto + xval 3 get yval 3 get lineto + xval 4 get yval 4 get lineto + xval 5 get yval 5 get lineto + xval 6 get yval 6 get lineto + closepath + xval 0 get yval 0 get moveto + xval 2 get yval 2 get lineto + xval 0 get yval 0 get moveto + xval 4 get yval 4 get lineto + xval 0 get yval 0 get moveto + xval 6 get yval 6 get lineto + stroke +} def + +/do_spot { + aload pop + mk_ellipse +} def + +/spot_die { + spots { + do_spot + } forall + +} def + +/do_die { + dup 0 get /xval exch def + dup 1 get /yval exch def + 2 get /spots exch def + fill_die + outline_die + spot_die +} def + +/dicedict 32 dict def + +/do_dice { + save + mark + -94 -45 translate + 2.8 2.8 scale + dicedict begin + die1_data do_die + die2_data do_die + end + cleartomark + restore +} def + +/outsidecircletext + { circtextdict begin + /radius exch def + /centerangle exch def + /ptsize exch def + /str exch def + /xradius radius ptsize 4 div add def + + gsave + centerangle str findhalfangle add rotate + + str + { /charcode exch def + (A) dup 0 charcode put outsideplacechar + } forall + + grestore + end +} def + + +/insidecircletext + { circtextdict begin + /radius exch def + /centerangle exch def + /ptsize exch def + /str exch def + /xradius radius ptsize 4 div add def + + /radius radius charheight add def + + gsave + centerangle str findhalfangle sub rotate + + str + { /charcode exch def + (A) dup 0 charcode put insideplacechar + } forall + + grestore + end +} def + +/circtextdict 16 dict def +circtextdict begin + /findhalfangle + { stringwidth pop 2 div + 2 xradius mul pi mul div 360 mul + } def + + /outsideplacechar + { /char exch def + /halfangle char findhalfangle def + gsave + halfangle neg rotate + radius 0 translate + -90 rotate + char stringwidth pop 2 div neg 0 moveto + char show + grestore + halfangle 2 mul neg rotate + } def + + /insideplacechar + { /char exch def + /halfangle char findhalfangle def + gsave + halfangle rotate + radius 0 translate + 90 rotate + char stringwidth pop 2 div neg 0 moveto + char show + grestore + halfangle 2 mul rotate + } def + + /charheight + { + newpath + 0 0 moveto + (A) true charpath flattenpath pathbbox + exch 4 -1 roll pop pop + exch sub + } def + + /pi 3.1415923 def +end + +/makecircle { + /crad exch def + /cy exch def + /cx exch def + newpath + cx cy crad 0 360 arc stroke +} def + +/centertext { + /str exch def + + str strdimensions + 2 div exch 2 div + 4 -1 roll exch sub + 3 1 roll sub + moveto str show +} def + +/ptSize 31 def +/Radius 108 def + +/Helvetica-Bold findfont ptSize scalefont setfont + +306 448 translate + +% 0 0 Radius makecircle +% 0 0 1 makecircle + +(REUSABLE CODE) ptSize 90 Radius outsidecircletext + +(BETTER PROGRAMS NOW) ptSize 270 Radius insidecircletext + +do_dice + +/Helvetica-Bold findfont 70 scalefont setfont + +gsave +1 setgray +2 -52 (C++) centertext +grestore +gsave +1 setgray +-2 -52 (C++) centertext +grestore +gsave +1 setgray +-2 -48 (C++) centertext +grestore +gsave +1 setgray +2 -48 (C++) centertext +grestore +0 setgray +0 -50 (C++) centertext + +showpage + -- 2.50.1