From: Mischa POSLAWSKY Date: Sat, 15 Apr 2017 17:06:31 +0000 (+0200) Subject: latin: order cmy colours by sound similarity X-Git-Tag: v1.10~139 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/9721bc0377fe93bf1c88cca13871740a8bb1c497 latin: order cmy colours by sound similarity Instead of sorting by hue (like RGB) or mnemonic (like Chromacons) invent a new encoding where letter differences (voice, place, etc) match colour differences (hue, intensity). Best effort as letters do not fit 3 dimensions and sounds differ by language. --- diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index 44fc0d6..02fdda7 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -28,6 +28,18 @@ my @hueorder = ( 1,10,9,12,3,4,0, 14,23,22,25,16,17,26, # dark, light hues ); +# Order to put similar sounds close to each other: +# ┌ R Y G C B M X +# ┌┼────────────── +# W│ o e y h s f - +# │muaixqgkdtbp l +# K│ w n j c z v r + +my @hueletters = ((26) x 27); +@hueletters[map { ord($_) - ord('a') } qw( + u a i x q g k d t b p m l w n j c z v r o e y h s f +)] = @hueorder; + sub disptap { my $code = shift; my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code; @@ -62,6 +74,7 @@ sub dispbar { sub disphues { my ($index, $hues, $opaque) = @_; + $index >= 0 or $index = 26; 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)'); @@ -520,7 +533,8 @@ cmymap => { ], list => [ map { disphues($_, [180, 60, 300]) } # Cyan, Yellow, Magenta - @hueorder[13..18, 19, 0..11, 20..25, 12, 26], +# @hueorder[13..18, 19, 0..11, 20..25, 12, 26], + @hueletters ], }, dni => {