npm install block-fractal
Create a block fractal:
const BlockFractal = require('block-fractal');
const path = BlockFractal.makeBlockFractal({
iterations: 7
});
Convert the path into a set of raster lines (makes cell tests faster):
const mask = path.rasterize();
Test if a tile is in the shape:
const inside = mask.get(x, y);
...
BlockFractal starts with a "seed" shape, which by default is a 2x2 square:
The shape is doubled, and then each edge is either left in place or moved to one side or the other:
The result is a new, bigger shape, similar to the previous shape but with a more varied border:
That process is then repeated as many times as requested.
For more information, see the Algorithm Overview