xxxxxxxxxx
44
let angle
function setup() {
createCanvas(400, 400);
angleMode(DEGREES)
}
function draw() {
background(220);
angle = mouseX
createBranch(width/2,height, angle, 100,1)
}
function createBranch(x, y, rot, size, depth){
translate(x,y)
rotate(rot)
beginShape();
vertex(-size/7,0);
vertex(-size/8,-size);
vertex(size/8,-size);
vertex(size/7,0);
endShape(CLOSE)
rotate(-rot)
translate(-x,-y)
if(depth<5){
rp = rotatePoint(0,-size/1.1,rot)
createBranch(x + rp[0], y + rp[1], abs(rot) + angle, size/( 1.1 ** depth), depth+1)
rp = rotatePoint(0,-size/1.1, rot)
createBranch(x + rp[0], y + rp[1],-abs(rot) - angle, size/ (1.1 ** depth), depth+1)
}
else{
// createLeaf(x,y-size,rot)
}
}
function createLeaf(x,y,rot){
circle(x,y,15)
}
function rotatePoint(x,y,rot){
x1 = x * cos(rot) - y * sin(rot)
y1 = y * cos(rot) + x * sin(rot)
return [x1,y1]
}