• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3  <title>Canvas 2D</title>
4</head>
5<body>
6  <canvas id='canvas1' style="border: 1px solid black;"></canvas>
7</body>
8<script type="text/javascript">
9  var canvas = document.getElementById('canvas1');
10  // Make the canvas very large but still falling inside the viewport; |height|
11  // also has to account for the Shelf (taskbar) at the bottom.
12  const dpr = window.devicePixelRatio || 1;
13  const width = (window.innerWidth / dpr) * 0.9 / dpr;
14  const height = (window.innerHeight / dpr) * 0.9 / dpr;
15  canvas.width = width;
16  canvas.height = height;
17
18  var ctx = canvas.getContext('2d');
19  var draw_passes_count = 0;
20
21  function draw_pass() {
22    ctx.beginPath();
23    ctx.lineWidth = '5';
24    // Consider a seeded random number generator if there are reproducibility
25    // problems.
26    ctx.strokeStyle = 'rgb(' + 0 + ',' + Math.random() * 255 + ',0)';
27    ctx.moveTo(Math.random() * width, Math.random() * height);
28    ctx.lineTo(Math.random() * width, Math.random() * height);
29    ctx.stroke(); // Draw it
30    draw_passes_count++;
31  }
32  setInterval(draw_pass, 1000);
33
34  function get_draw_passes_count() {
35    return draw_passes_count;
36  }
37
38</script>
39</html>
40