chiark / gitweb /
triangles
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 18:00:18 +0000 (18:00 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 2 Mar 2019 18:00:18 +0000 (18:00 +0000)
generate-board

index f81459110a864599b1b7c38e41d1114bf369ca39..2eb67ac1aaf2957a9117544be75ff241e42068d0 100755 (executable)
@@ -563,11 +563,12 @@ sub dykes(){
   my $t_sz = $w;
   my $t_at = sub {
     my ($ang) = @_;
+    print STDERR "ANG $ang\n";
     map { $t_sz * $_ } cos($ang), sin($ang);
   };
-  my @t0 = $t_at->(0.5*TAU             );
-  my @t1 = $t_at->(0.5*TAU + 1./3 * TAU);
-  my @t2 = $t_at->(0.5*TAU + 2./3 * TAU);
+  my @t0 = $t_at->((TAU) *  0.25         );
+  my @t1 = $t_at->((TAU) * (0.25 + 1./3) );
+  my @t2 = $t_at->((TAU) * (0.25 + 2./3) );
   o("  /dtriangle {\n");
   o("    newpath @t0 moveto\n");
   o("            @t1 lineto\n");
@@ -586,16 +587,19 @@ sub dykes(){
       my @ends = adj_ends($adj);
       my $dirn = $ends[1] - $ends[0];
       my $angle = vec2atan($dirn);
+      my $angle = $angle * 360 / TAU;
       o("  gsave\n");
       o("    ", psvec( 0.5 * ($ends[0] + $ends[1]) )," translate\n");
-      o("    ", ($angle * 360 / TAU), " rotate\n");
+      o("    $angle rotate\n");
       my $initial = $adj->{Dykes};
       for my $ys ($initial
                  ? [ map { $_ - 0.5 * ($initial-1) } 0..$initial-1 ]
                  : [0]) {
        foreach my $y (@$ys) {
-         o("    gsave 0 ", $y * $w, " translate dyke grestore\n");
+         o("    gsave 0 ", $y * $w, " translate dyke ");
+         o(" grestore\n");
        }
+       o(" $angle neg rotate dtriangle ") if $initial;
       }
       o("  grestore\n");
     }