chiark / gitweb /
break out chip()
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 3 Dec 2020 14:57:02 +0000 (14:57 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 3 Dec 2020 14:57:02 +0000 (14:57 +0000)
pumpkin-books.ps.pl

index f0d763fba0b2e843c7395a9cc7055c886fba363f..afe1986896d2dc788b62ef6e9443e786520a3ee7 100755 (executable)
@@ -2,6 +2,22 @@
 
 use strict;
 
+my $thiscolour = "1 0 1 0";
+my $spotcolour = "0 0 0 0";
+
+sub chip ($$) {
+  my ($this, $spot) = @_; # put in a gsave
+  <<END;
+  $thiscolour setcmykcolor
+  newpath
+  0 0 chip 0.5 mul 0 360 arc fill
+
+  $spotcolour setcmykcolor
+  newpath
+  0 0 spot 0.5 mul 0 360 arc fill
+END
+}
+
 print <<END or die $!;
 %!
 
@@ -19,9 +35,6 @@ print <<END or die $!;
 /spot 3.5 def
 
 
-/thiscolour { 1 0 1 0 setcmykcolor } def
-/spotcolour { 0 0 0 0 setcmykcolor } def
-
 tw  0  translate
 
 % diagonal conversion
@@ -66,13 +79,7 @@ newpath
 gsave
   -1 6 div costcirch dc translate
 
-  1 0 1 0 setcmykcolor
-  newpath
-  0 0 chip 0.5 mul 0 360 arc fill
-
-  0 0 0 0 setcmykcolor
-  newpath
-  0 0 spot 0.5 mul 0 360 arc fill
+  ${\ chip($thiscolour, $spotcolour) }
 grestore
 END