]> granicus.if.org Git - graphviz/commitdiff
Add additional test data file
authorerg <devnull@localhost>
Sat, 5 Dec 2009 22:45:49 +0000 (22:45 +0000)
committererg <devnull@localhost>
Sat, 5 Dec 2009 22:45:49 +0000 (22:45 +0000)
rtest/graphs/dice.ps [new file with mode: 0644]

diff --git a/rtest/graphs/dice.ps b/rtest/graphs/dice.ps
new file mode 100644 (file)
index 0000000..fe4211b
--- /dev/null
@@ -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
+