green:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      

blue:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

red:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

achromatic:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

yellow:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              

cyan:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

magenta:                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  

Hue / red distance: ...

Code:

#!perl -w
use Graphics::ColorObject;
use Math::Trig;
use strict;
use warnings;
use List::Util qw/min max/;
use Data::Dumper;
use URI;
use HTML::Entities qw/encode_entities_numeric/;
use GD;

sub mk {
  Graphics::ColorObject->new_RGB255(\@_)->as_Lab;
}

my %ref = (
#  black => mk(0,0,0),
#  white => mk(255,255,255),
  achromatic => mk(127,127,127),
  red => mk(255,0,0),
#  rose => mk(255,0,127),
  magenta => mk(255,0,255),
#  violet => mk(127,0,255),
  blue => mk(0,0,255),
#  azure => mk(0, 127, 255),
  cyan => mk(0,255,255),
#  spring => mk(0,255,127),
  green => mk(0,255,0),
#  chartreuse => mk(127,255,0),
  yellow => mk(255,255,0),
#  orange => mk(255,127,0),
#  brown => mk(150, 75, 0),
);

sub distance {
  my ($ref, $cur) = @_;
  sqrt(($cur->[0] - $ref->[0])**2 +
       ($cur->[1] - $ref->[1])**2 +
       ($cur->[2] - $ref->[2])**2);
}

my %m;
my $image = GD::Image->new(360, 360, 1);
$image->saveAlpha(1);
$image->trueColor(1);

for (0..2**16) {
  my $r = int (rand() * 255);
  my $g = int (rand() * 255);
  my $b = int (rand() * 255);

  my $obj = Graphics::ColorObject->new_RGB255([$r, $g, $b]);
  my $cur = $obj->as_Lab;
  my $hue = $obj->as_HSL->[0];
  my $col = (($r) << 16) + (($g) << 8) + (($b) << 0);

  if (rand() < 0.2) {
    my %dis = map { distance($ref{$_}, $cur) => $_ } keys %ref;
    my $min = $dis{ min(keys %dis) };
    $m{$min}->{$col}++;
  }

  my $rdi = distance($ref{red}, $cur);

  my $x = 180 + $rdi * cos($hue);
  my $y = 180 + $rdi * sin($hue);
  $image->setPixel($x, $y, $image->colorAllocate($r, $g, $b));
}

sub mk2 {
  Graphics::ColorObject->new_RGB255([
    map { $_ & 0xFF } ($_[0] >> 16, $_[0] >> 8, $_[0] >> 0)
  ])->as_Lab;
}

foreach my $bucket (keys %m) {
  printf "<p>%s: ", $bucket;
  foreach my $col (sort {
    distance($ref{$bucket}, mk2 $a) <=> distance($ref{$bucket}, mk2 $b)
    } keys %{ $m{$bucket} }) {
    printf "<i style='background-color: #%06x'>&#xa0; </i>", $col
  }
}

my $data = URI->new("data:image/png,");
$data->data($image->png(9));
printf "<p>Hue / red distance: <img alt='...' src='%s'>\n",
  encode_entities_numeric($data);

my $file = do { local$/; IO::File->new('<1.pl')->getline };

printf "<p>Code:<pre>%s",
  encode_entities_numeric($file);

print "</pre>";