How to resolve the algorithm Barnsley fern step by step in the Raku programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Barnsley fern step by step in the Raku programming language

Table of Contents

Problem Statement

A Barnsley fern is a fractal named after British mathematician Michael Barnsley and can be created using an iterated function system (IFS).

Create this fractal fern, using the following transformations: Starting position: x = 0, y = 0

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Barnsley fern step by step in the Raku programming language

Source code in the raku programming language

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';


  

You may also check:How to resolve the algorithm Sum of a series step by step in the Mathematica/Wolfram Language programming language
You may also check:How to resolve the algorithm Top rank per group step by step in the M2000 Interpreter programming language
You may also check:How to resolve the algorithm Vector products step by step in the Elixir programming language
You may also check:How to resolve the algorithm Map range step by step in the jq programming language
You may also check:How to resolve the algorithm Factorial base numbers indexing permutations of a collection step by step in the Perl programming language