xxxxxxxxxx
36
let angleOffset;
function setup() {
createCanvas(1000, 1000);
background(0);
stroke(255);
strokeWeight(15);
translate(width / 2, height);
angleOffset = random(1000); // Initialize a random offset for noise
drawBranch(150, 20); // Start drawing the tree with an initial trunk length and thickness
}
function drawBranch(len, sw) {
if (sw > 1) {
strokeWeight(sw); // Set branch thickness
}
line(0, 0, 0, -len);
translate(0, -len);
if (len > 4) {
let branches = floor(random(2, 4)); // Random number of branches between 2 and 3
for (let i = 0; i < branches; i++) {
let branchAngle = map(noise(angleOffset), 0, 1, PI / 6, PI / 4);
let branchLength = len * random(0.5, 0.8); // Random length for each branch
angleOffset += 0.05;
push();
rotate(branchAngle * (i % 2 === 0 ? 1 : -1)); // Alternate direction for branches
drawBranch(branchLength, sw * 0.67);
pop();
}
}
}