latin: prussian semaphore
authorMischa POSLAWSKY <perl@shiar.org>
Sat, 22 Aug 2015 00:31:37 +0000 (02:31 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Mon, 21 Sep 2015 22:20:08 +0000 (00:20 +0200)
<https://en.wikipedia.org?oldid=656504197>

latin.plp
writing-latn.inc.pl

index a83bc0d..ffdb581 100644 (file)
--- a/latin.plp
+++ b/latin.plp
@@ -52,6 +52,7 @@ my %scriptname = (
        ics      => 'Maritime flags', # International Code of Signals
        sem      => 'Flag semaphore',
        semc     => 'Chappe semaphore',
+       semp     => 'Prussian semaphore',
        pigpen   => 'Pigpen',
        wingdings=> 'Wingdings',
        code39   => 'Code 39', # ISO/IEC 16388
index 2a20b76..43728c4 100644 (file)
@@ -170,6 +170,26 @@ semc => [
          001 101 201 301 401 501 601 701 020
        )
 ],
+semp => [
+       map { !$_ ? '-' : sprintf
+               join('',
+                       '<svg width="20" height="20" viewBox="0 0 8 18">',
+                       '<path stroke="black" d="M4,1 v18"/>',
+                       (map {(
+                               qq(<path stroke="black" d="M0 $_ h4" transform="rotate(%d 4 $_)"/>),
+                               qq(<path stroke="black" d="M4 $_ h4" transform="rotate(-%d 4 $_)"/>),
+                       )} 3, 7, 14),
+                       '</svg>',
+               ),
+               map { ($_ - 2) * 45 % 360 } split //, $_
+       }
+       # rotation state (0-3) for left and right bar of 3 rows
+       qw(
+               003000 000200 203300 000030 033030 000130 000330 032330 031330 031330
+               022020 130120 001320 233010 030210 022310 203001 233001
+               131001 231301 000202 023302 230003 032003 201003 101003
+       )
+],
 code39 => [map { tr/012/ ❘❙/r } qw{
        211012 121012 221011 112012 212011 122011 111022 211021 121021 112021
        211102 121102 221101 112102 212101 122101 111202 211201 121201 112201