latin: curve back to previous positions in edgewrite glyphs
authorMischa POSLAWSKY <perl@shiar.org>
Wed, 12 Apr 2017 23:34:18 +0000 (01:34 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 22 May 2017 15:55:30 +0000 (17:55 +0200)
Distinguish M/N, H/W, clarify stroke order.

writing-latn.inc.pl

index 640dd9b..7f1ed38 100644 (file)
@@ -181,9 +181,14 @@ edgewrite => {
        list => [
                map { '<svg width="14" height="14" viewBox="-1 -1 10 10">'.$_.'</svg>' }
                map {
-                       my @coords = map { $_ % 2 << 3, $_ >> 1 << 3 } split //; # x,y,
+                       my @route = split //;
+                       my @coords = map { $_ % 2 << 3, $_ >> 1 << 3 } @route; # x,y,
                        sprintf('<circle cx="%s" cy="%s" r="1"/>', @coords[0, 1]) . # start point
-                       sprintf('<path d="M%s"/>', "@coords")
+                       sprintf('<path d="M%s"/>', join ' ', map {
+                               my $pos = join(',', @coords[$_*2, $_*2 + 1]);
+                               $_ > 1 && $route[$_] == $route[$_ - 2] ? 'Q4,4 '.$pos.'L' : # curve back
+                               $pos
+                       } 0 .. $#route)
                }
                # corners (0..3) clockwise from top-left in order
                qw(