Barnsley fern: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl}}: added image)
(→‎{{header|Perl 6}}: Add Perl 6 example)
Line 142: Line 142:
$img->flip(dir => 'v');
$img->flip(dir => 'v');
$img->write(file => 'barnsleyFern.png');</lang>
$img->write(file => 'barnsleyFern.png');</lang>

=={{header|Perl 6}}==
{{works with|Rakudo|2016.03}}
{{trans|Perl}}
[[File:Barnsley-fern-perl6.png|250px|thumb|right]]
<lang perl6>use Image::PNG::Portable;

my ($w, $h) = (640, 640);

my $png = Image::PNG::Portable.new: :width($w), :height($h);

my ($x, $y) = (0, 0);

for ^2e5 {
my $r = 100.rand;
($x, $y) = do given $r {
when $r <= 1 { ( 0, 0.16 * $y ) }
when $r <= 8 { ( 0.20 * $x - 0.26 * $y, 0.23 * $x + 0.22 * $y + 1.60) }
when $r <= 15 { (-0.15 * $x + 0.28 * $y, 0.26 * $x + 0.24 * $y + 0.44) }
default { ( 0.85 * $x + 0.04 * $y, -0.04 * $x + 0.85 * $y + 1.60) }
};
$png.set(($w / 2 + $x * 60).Int, $h - ($y * 60).Int, 0, 255, 0);
}

$png.write: 'Barnsley-fern-perl6.png';</lang>


=={{header|Sidef}}==
=={{header|Sidef}}==