chiark / gitweb /
cubes
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 16:57:45 +0000 (16:57 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 16:57:45 +0000 (16:57 +0000)
generate-board

index b7af3ed08b20def627d2d67eb0d1e093c5a11475..ec898441c8de4ffc57f03a360e60a6d5201620b4 100755 (executable)
@@ -462,7 +462,7 @@ END
   }
 }
 
-our $cube_sz = 7 * MM2PT;
+our $cube_sz = 6 * MM2PT;
 our $cube_gap = $cube_sz * 0.2;
 our $cube_lw = ($cube_sz * 0.1);
 
@@ -475,7 +475,7 @@ sub water_cubes($){
   my ($n) = @_;
   my $s = $cube_sz;
   for my $i (0..$n-1) {
-    o("  newpath  0  0  moveto\n");
+    o("  newpath  ", $i * ($cube_sz + $cube_lw + $cube_gap),"  0  moveto\n");
     o("          $s  0  rlineto\n");
     o("           0 $s  rlineto\n");
     o("         -$s  0  rlineto  closepath\n");
@@ -505,15 +505,23 @@ sub sea_track(){
                 $linecolour);
   }
   for my $i (0..$#pos-1) {
-    next if $track->[$i] == $track->[$i+1];
+    my $differs = $track->[$i] != $track->[$i+1];
+    next unless $differs || $track->[$i]==2 && $track->[$i+2]!=2;
     o("  $prepline\n");
     o("  gsave ",
       psvec($pos[$i] + mkvec(-0.0 * $token_sz, $dy/2))," translate\n");
-    o("  0 0 moveto",
-      " ",psvec(mkvec( $token_sz * 1.25 + $cube_sz, 0 )), " rlineto stroke\n");
+    if ($differs) {
+      o("  0 0 moveto",
+       " ",psvec(mkvec( $token_sz * 1.25 + $cube_sz, 0 )),
+       " rlineto stroke\n");
+    }
     o("  ",($token_sz * 0.6 + $cube_gap)," ",($cube_gap + $hs_lw),
       " translate\n");
     water_cubes(2);
+    my $new_n = $track->[$i+1] - 2;
+    o("  ", 0.5 * (water_cubes_sz(2) - water_cubes_sz($new_n)),
+      "  ",       (water_cubes_sz(2)-water_cubes_sz(1)), " translate\n");
+    water_cubes($new_n);
     o("  grestore\n");
   }
   o("  grestore\n");