Папоротник Барнсли

Классический пример построения фрактала "папоротник Барнсли".
Для установки точки используется специальная функция:

function setPixel (x,y,c) // устанавливает пиксель с координатой (x, y) с цветом c
{ 
    var index = 4*(x + canvas.width*y);
    imgData.data[index + 0]=c.r;
    imgData.data[index + 1]=c.g;
    imgData.data[index + 2]=c.b;
    imgData.data[index + 3]=c.a;
    return c;
}
Направление: