sub {{ my $ret = [ map {int} @$c ]; ... #### $w = [ map { my $v = $f + $s*$_/$i; $f = $v - int($v); $v # not int $v } @$w ]; $w->[-1] += $f; #### use constant PI => 4 * atan2(1,1); my $intervals = 40; my $iterlin = range( [ 0,255,255] => [ 0,255, 0], [(1) x $intervals], $intervals ); my $itersin = range( [ 0,255,255] => [ 0,255, 0], [ map {sin(($_/$intervals)*PI) } 0..$intervals], $intervals ); print qq{Gradient \n}; while (my ($rgb_lin, $width) = $iterlin->()) { my ($rgb_sin, $widthsin) = $itersin->(); my $lin = join '', '#', map { sprintf '%02x',$_ } @$rgb_lin; my $sin = join '', '#', map { sprintf '%02x',$_ } @$rgb_sin; print qq{}; } print "
$$rgb_lin[0] $$rgb_lin[1] $$rgb_lin[2] $$rgb_sin[0] $$rgb_sin[1] $$rgb_sin[2]
\n";