xxxxxxxxxx
53
let init_num = 8;
let init_length = 100;
let init_angle = 60;
let shrink_factor = 0.7;
let minBranch_len = 2;
function setup() {
createCanvas(800, 800);
noLoop();
angleMode(DEGREES);
}
function draw() {
background(0, 0, 40);
translate(width/2, height/2);
InitializeBranches(init_length, init_num, init_angle);
}
function branch(len, angle) {
line(0, 0, 0, len);
translate(0, len);
len *= 0.7;
angle = random(angle-30, angle+20);
if (len > 3) {
push();
rotate(angle);
branch(len, angle);
pop();
push();
rotate(-angle);
branch(len, angle);
pop();
}
}
function InitializeBranches(length, num, angle) {
stroke(255, 80, 80);
let degreeDiv = 360/num;
let angleRange;
for (var i = 0; i < num; i++) {
push();
angleRange = i*degreeDiv;
rotate(random(angleRange, angleRange + degreeDiv));
branch(length, angle);
pop();
}
}