X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/611b97b48eeb587a88a51c449c7e64a29e5d662c..0b57d5121c74fe18615499055e2f079c81c89001:/writing-latn.inc.pl diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index 10b30ce..aa0e444 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -1,14 +1,20 @@ use 5.014; use utf8; +use warnings; use List::Util qw( pairs pairmap sum ); -my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); +my %C = ( + red => '#EC1C24', + blue => '#3953A3', + yellow => '#F9EC31', + black => '#231F20', +); my $U = 0; # optional unicode alternatives my @wrapstyle = ( - 'td { white-space: normal; word-spacing: 5em }', # force line break between words + 'td { white-space: normal; word-spacing: 10em }', # force line break between words '.sample { word-spacing: 0 }', - '.sample span { margin-right: 1ex; white-space: nowrap }', # larger space between letters + '.sample span { margin-right: 1ex; white-space: nowrap; display: inline-block }', # larger space between letters ); my $spacestyle = '.sample span { margin-right: 0.5ex }'; # separate multiple letters my @tapstyle = ( @@ -49,6 +55,22 @@ sub dispbar { ); } +sub disphues { + my ($index, $hues, $opaque) = @_; + my @lum = ($index % 3, $index / 3 % 3, $index / 9); # hue opacities (0..2)x3 + my @lumf = $opaque ? ('hsl(%s,100%%,50%%)', 'hsl(%s,100%%,25%%)') : + ('hsl(%s,100%%,50%%)', 'hsla(%s,100%%,50%%,.5)'); + return sprintf( + '%s', + join '', map { + my $colf = $lumf[ $lum[$_] ]; + !$colf ? () : sprintf('', + 10 + $_, $_ == 1 ? 12 : 10, 10, sprintf($colf, $hues->[$_]) + ); + } 0 .. 2 + ); +} + ( uppercase => { list => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }], @@ -159,6 +181,28 @@ unistrokes => { 'M3,4', ], }, +edgewrite => { + title => 'EdgeWrite', + style => 'svg path { stroke-linecap: round; stroke-linejoin: round }', + list => [ + map { ''.$_.'' } + map { + my @route = split //; + my @coords = map { $_ % 2 << 3, $_ >> 1 << 3 } @route; # x,y, + sprintf('', @coords[0, 1]) . # start point + sprintf('', 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( + 213 0232 1023 1323 103 102 10132 0213 02 132 02123 023 20313 2031 + 10231 0102 10131 201 1032 013 0231 021 02131 0312 0313 0123 01 + ) + ], +}, #graffiti => { # title => 'Palm Graffiti', #}, @@ -417,7 +461,7 @@ code128 => { list => [map { dispbar($_) } qw( 111323 131123 131321 112313 132113 132311 211313 231113 231311 112133 112331 132131 113123 113321 133121 313121 211331 231131 213113 213311 - 213131 311123 311321 331121 312113 312311 212222 0 211412 2331112 + 213131 311123 311321 331121 312113 312311 212222 0 211412 23311120 )], }, rm4scc => { @@ -453,16 +497,23 @@ rgbmap => { style => [ 'svg { isolation: isolate }', 'svg circle { mix-blend-mode: screen }', + '.sample { background: black }', ], list => [ - map { ''.$_.'' } - map { - my $circle = ''; - join '', - sprintf($circle, 0, 0, [0, 8, 15]->[$_ % 3], 0, 0), - sprintf($circle, 8, 0, 0, [0, 8, 15]->[$_ / 3 % 3], 0), - sprintf($circle, 6, 8, 0, 0, [0, 8, 15]->[$_ / 9]), - } 1 .. 3*3*3 + map { disphues($_, [0, 240, 120], 1) } # Red, Blue, Green + 0 .. 3*3*3 - 2 + ], +}, +cmymap => { + title => 'CMYmap', + style => [ + 'svg { isolation: isolate }', # mix on white + 'svg circle { mix-blend-mode: multiply }', + '.sample { background: white }', + ], + list => [ + map { disphues($_, [180, 60, 300]) } # Cyan, Yellow, Magenta + 0 .. 3*3*3 - 1 ], }, dni => { @@ -540,17 +591,18 @@ nyctographs => { # draw style (0=empty, 1=dot, 2=line connect) to right, down, left, up qw( 0010 0112 2022 2220 2000 2012 0122 0202 0020 0220 0012 0022 2202 - 0222 2222 0102 0200 2201 2002 2200 0100 0110 0120 2001 2010 2020 0 + 0222 2222 0102 0200 2201 2002 2200 0100 0110 0120 2001 2010 2020 0000 ), ], }, chromacons => { +# style => '.sample { word-break: break-all }', list => [ # Colour Alphabet by Paul Green-Armytage (2010) map { sprintf('%s', !!$_ && sprintf(' style="background:#%s" title="%s"', split /:/), - chr(8195), # em space + chr(8195) . (!$_ && chr(8203)) # em space (plus zwsp for spaces) ); } qw{