From: Mischa POSLAWSKY Date: Wed, 12 Apr 2017 20:41:00 +0000 (+0200) Subject: latin: extend colour svg to mix specified hues X-Git-Tag: v1.10~149 X-Git-Url: http://git.shiar.nl/sheet.git/commitdiff_plain/e428e6a5dee93205f841cde76d7df674f780ee11 latin: extend colour svg to mix specified hues Replace hardcoded #rgb by generic hsl() values. --- diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index 0d6ecb4..fd9faa2 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -49,15 +49,18 @@ sub dispbar { ); } -sub disprgb { - my ($index) = @_; - my $circle = ''; +sub disphues { + my ($index, $hues) = @_; + my @lum = ($index % 3, $index / 3 % 3, $index / 9); # hue opacities (0..2)x3 + my @lumf = ('hsl(%s,100%%,50%%)', 'hsl(%s,100%%,25%%)'); return sprintf( '%s', - join '', - sprintf($circle, 10, 10, [0, 8, 15]->[$index % 3], 0, 0), - sprintf($circle, 11, 12, 0, [0, 8, 15]->[$index / 3 % 3], 0), - sprintf($circle, 12, 10, 0, 0, [0, 8, 15]->[$index / 9]), + join '', map { + my $colf = $lumf[ $lum[$_] ]; + !$colf ? () : sprintf('', + 10 + $_, $_ == 1 ? 12 : 10, 10, sprintf($colf, $hues->[$_]) + ); + } 0 .. 2 ); } @@ -466,7 +469,7 @@ rgbmap => { 'svg { isolation: isolate }', 'svg circle { mix-blend-mode: screen }', ], - list => [ map { disprgb($_) } 0 .. 3*3*3 ], + list => [ map { disphues($_, [0, 240, 120]) } 0 .. 3*3*3 ], # Red, Blue, Green }, dni => { title => "D'ni",