La capacidad de respuesta del lienzo HTML5 no funciona

Estoy tratando de trazar un grupo de círculos usando el elemento de lienzo HTML5 (como se muestra en la figura 1).ingrese la descripción de la imagen aquí

La figura anterior se recorta cuando cambio el tamaño del navegador. Quiero que responda cuando cambie el tamaño del navegador.

Por favor, ayúdame a hacer que responda. Gracias.

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

canvas.width = window.innerWidth; /// equal to window dimension
canvas.height = window.innerHeight;

var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.9;
drawClock();

function drawClock() {
  drawCircle(ctx, radius);
}

function drawCircle(ctx, radius) {
  var ang;
  var num;

  for (num = 1; num <= 40; num++) {
    ang = num * Math.PI / 20;
    ctx.rotate(ang);
    ctx.translate(0, -radius * 0.85);
    ctx.rotate(-ang);
    ctx.beginPath();
    ctx.arc(0, 0, radius / 20, 0, 2 * Math.PI);
    ctx.stroke();
    ctx.rotate(ang);
    ctx.translate(0, radius * 0.85);
    ctx.rotate(-ang);
  }
}
#canvas {
  display: block;
}
<canvas id="canvas"></canvas>

Respuestas a la pregunta(2)

Su respuesta a la pregunta