Look up at the trees
Log in to post a comment.
Canvas.setpenopacity(-1.0); const t = new Turtle(); function drawBranch(x, y, length, angle, thickness) { const endX = x + Math.cos(angle) * length; const endY = y + Math.sin(angle) * length; t.jump(x, y); t.goto(endX, endY); // Draw smaller branches at the end if (length > 5) { const numBranches = Math.floor(3 + Math.random() * 3); for (let i = 0; i < numBranches; i++) { const newAngle = angle + (-0.5 + Math.random()) * Math.PI * 0.5; const newLength = length * (0.4 + Math.random() * 0.3); drawBranch(endX, endY, newLength, newAngle, thickness * 0.7); } } } function drawCanopyTree(centerX, centerY, size) { const numMainBranches = 5 + Math.floor(Math.random() * 4); const baseLength = size * (0.7 + Math.random() * 0.3); for (let i = 0; i < numMainBranches; i++) { const angle = (i / numMainBranches) * Math.PI * 2 + Math.random() * 0.5; drawBranch(centerX, centerY, baseLength, angle, 1); } } // Create a forest canopy view const numTrees = 15; const maxRadius = 200; for (let i = 0; i < numTrees; i++) { const distance = Math.sqrt(Math.random()) * maxRadius; const angle = Math.random() * Math.PI * 2; const x = Math.cos(angle) * distance; const y = Math.sin(angle) * distance; // Trees get smaller as they get further from center (perspective) const size = 80 * (1 - distance/maxRadius) + 20; drawCanopyTree(x, y, size); } // Add some smaller connecting branches for magical effect for (let i = 0; i < 100; i++) { const x = -maxRadius + Math.random() * maxRadius * 2; const y = -maxRadius + Math.random() * maxRadius * 2; const length = 10 + Math.random() * 20; const angle = Math.random() * Math.PI * 2; drawBranch(x, y, length, angle, 0.5); }