Julia set: Difference between revisions

120 bytes removed ,  8 years ago
m
→‎{{header|Perl 6}}: more simplification, DRY
m (→‎{{header|Perl 6}}: minor code cleanup)
m (→‎{{header|Perl 6}}: more simplification, DRY)
Line 140:
my $i = $maxIter;
while $zx² + $zy² < 4 and --$i {
($zy, $zx) = (2.0 * $zx * $zy + $cY, $zx² - $zy² + $cX);
}
$png.set( $x, $y, |hsv2rgb($i / $maxIter * 360, 1, ?$i > 1 ?? 1 !! 0).reverse );
}
}
Line 151:
my $x = $c * (1 - abs( (($h/60) % 2) - 1 ) );
my $m = $v - $c;
my ($r, $g, $b); = do given $h {
when 300 0..^36060 { ($rc, $g, $b) = ($cx, 0, $x) }
given $h {
when 060..^60 120 { ($rx, $g, $b) = ($c, $x, 0) }
when 60120..^120180 { ($r0, $gc, $b) = ($x, $c, 0) }
when 120180..^180240 { ($r0, $g, $b) = (0x, $c, $x) }
when 180240..^240300 { ($rx, $g, $b) = (0, $x, $c) }
when 240300..^300360 { ($rc, $g0, $b) = ($x, 0, $c) }
when 300..^360 { ($r, $g, $b) = ($c, 0, $x) }
}
( $r, $g, $b ) = map { (($_+$m) * 255).Int }, $r, $g, $b;
return $b, $g, $r;
}</lang>
 
10,333

edits