-
- my $blueL = 0.665;
- my $yellowL = 0.350;
-
- my $y = $hue - 60;
- $y += 360 if $y < 0;
- my $q = cos(deg2rad(abs($y-180)/2.0));
- my $l1 = $yellowL + ($blueL - $yellowL) * $q;
- my $l2 = 0.150 + 0.350 * $q;
+ my $baseIndent = shift // '';
+
+ my %lQ = (
+ 0 => 0.450, # red
+ 60 => 0.400, # yellow
+ 120 => 0.400, # green
+ 180 => 0.400, # cyan
+ 240 => 0.750, # blue
+ 300 => 0.500, # magenta
+ );
+ $lQ{360} = $lQ{0};
+
+ my ($x0, $x1, $y0, $y1);
+ $x0 = (int( $hue / 60 ) * 60) % 360;
+ $x1 = $x0 + 60;
+ $y0 = $lQ{$x0};
+ $y1 = $lQ{$x1};
+
+ # linear interpolation
+ my $l1 = $y0 + 1.0 * ( $hue - $x0 ) * ( $y1 - $y0 ) / ( $x1 - $x0 );
+
+ my $l2 = $l1 * 0.80;