X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/36cc824ce76ec496c1eecfa33d2d3c8957e84951..5cb51563a0446730021210317daac3a33655be51:/termcol.plp diff --git a/termcol.plp b/termcol.plp index affceb9..6cc6fea 100644 --- a/termcol.plp +++ b/termcol.plp @@ -48,6 +48,7 @@ print use 5.010; use Shiar_Sheet::Colour '1.04'; use List::Util qw( min max ); +use POSIX qw( ceil ); my $palettes = do 'termcol.inc.pl'; die "Cannot open palette data: $_\n" for $@ || $! || (); @@ -131,17 +132,24 @@ for my $term (@termlist) { $colours = [ map { $colours->[$_] =~ s/:|$/:$_/r } @{$reorder} ]; } + my $rows = 8; + my $columns = ceil(@{$colours} / $rows); + print '', "\n"; printf "\n", $caption; - for my $num (0 .. $#{$colours}) { - my ($rgb, $name) = split /:/, $colours->[$num], 3; - $name ||= $num; - $name = [ $name, [] ] if $term =~ /^msx/ and !$num; - $name = [ $name, ['#333'] ] if $term eq 'xkcd'; - print '', colcell($name, $rgb); + for my $row (0 .. $rows - 1) { + print ''; + for my $col (0 .. $columns - 1) { + my $num = $row + $col * $rows; + my ($rgb, $name) = split /:/, $colours->[$num], 3; + $name //= $rgb && $num; + $name = [ $name, [] ] if $term =~ /^msx/ and !$num; + $name = [ $name, ['#333'] ] if $term eq 'xkcd'; + print colcell($name, $rgb); + } } - print '
%s
', img_egapal(\@{$colours}, @{$_}) for @draw; + print "
", img_egapal(\@{$colours}, @{$_}) for @draw; print "
\n\n"; } } @@ -171,8 +179,9 @@ sub coltable_hsv { } $h = 1; # greyscale hue - $s = 1; # lowest saturation for other hues - $v = $s = $vmax if !$v; # black at full saturation + $s = $smax - $v + 1; # spread brightness over saturation groups + $v &&= $smax # highest saturation + or $v = $s = 1; # black at initial column } $h *= $hmax; @@ -189,7 +198,7 @@ sub coltable_hsv { my $huerow = $colmap[0][0]; # first {$_} map { @{$_} } @colmap; for my $h (grep { $huerow->[$_] } 0 .. $#{$huerow}) { $out .= ''; - $out .= colcell(@$_) for map { $_->[$h] } map { @{$_} } @colmap; + $out .= colcell(@$_) for map { $_->[$h] } map { reverse @{$_} } @colmap; } if (@greymap) {