Inspiracja:
Kod źródłowy:
var angle = 3.14/5;
var proportion = 0.67;
var canvasWidth = 500;
var canvasHeight = 500;
function setup() {
var canvas = createCanvas(500, 500);
background(0,0,10);
colorMode(HSB);
frameRate(10);
}
function draw() {
angle = PI*(abs(mouseX % canvasWidth)/canvasWidth);
//proportion = 0.67;
proportion = ((abs(mouseY % canvasHeight)/2)/canvasHeight+0.5)*0.75;
background(0,0,10);
stroke(255);
translate(canvasWidth/2, canvasHeight);
branch(150, 1);
}
function branch(len, generation) {
strokeWeight(20/generation);
stroke(generation*10+100, 100, 100);
line(0, 0, 0, -len);
translate(0, -len);
if (len > 4) {
push();
rotate(angle+ randomGaussian(1)/30);
branch(len * proportion, generation+1);
pop();
push();
rotate(-angle + randomGaussian(1)/30);
branch(len * proportion, generation+1);
pop();
}
else
{
noFill();
ellipse(0,0,3);
}
}
Zachęcam do własnych prób.