-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtree.html
More file actions
69 lines (58 loc) · 1.29 KB
/
tree.html
File metadata and controls
69 lines (58 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
const HEIGHT=600;
const WIDTH=600;
var canvas;
var ctx;
var isRunning=false;
function setup()
{
canvas = document.getElementById('canvas');
ctx = canvas.getContext('2d');
ctx.canvas.height=HEIGHT;
ctx.canvas.width=WIDTH;
render();
}
function render()
{
ctx.clearRect(0,0,WIDTH,HEIGHT);
ctx.translate(WIDTH/2,HEIGHT);
drawBranch(100,0);
if(isRunning){
requestAnimationFrame(render);
}
}
function drawBranch(len, angle)
{
ctx.beginPath();
ctx.moveTo(0,0);
ctx.rotate(angle);
ctx.lineTo(0,-len);
ctx.stroke();
ctx.translate(0,-len);
if(len>5){
var min=Math.PI/12;
var max=Math.PI/6;
var random_left = Math.random() * (+max - +min) + +min;
var random_right = Math.random() * (+max - +min) + +min;
ctx.save();
drawBranch(len*0.70, -random_left );
ctx.restore();
ctx.save();
drawBranch(len*0.70, random_right );
ctx.restore();
}
}
</script>
</head>
<body onload="setup();">
<body>
<canvas id="canvas" style="border:2px dotted pink;"></canvas>
</body>
</body>
</html>