}
}
-our $cube_sz = 7 * MM2PT;
+our $cube_sz = 6 * MM2PT;
our $cube_gap = $cube_sz * 0.2;
our $cube_lw = ($cube_sz * 0.1);
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");
$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");