Orologio in tela


In questi capitoli costruiremo un orologio analogico usando il canvas HTML.


Parte I - Creare la tela

L'orologio necessita di un contenitore HTML. Crea una tela HTML:

Codice HTML:

<!DOCTYPE html>
<html>
<body>

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

<script>
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var radius = canvas.height / 2;
ctx.translate(radius, radius);
radius = radius * 0.90
drawClock();

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}
</script>

</body>
</html>


Codice spiegato

Aggiungi un elemento HTML <canvas> alla tua pagina:

<canvas id="canvas" width="400" height="400" style="background-color:#333"></canvas>

Crea un oggetto canvas (var canvas) dall'elemento canvas HTML:

var canvas = document.getElementById("canvas");

Crea un oggetto di disegno 2d (var ctx) per l'oggetto canvas:

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

Calcola il raggio di clock, usando l'altezza della tela:

var radius = canvas.height / 2;

Utilizzando l'altezza della tela per calcolare il raggio dell'orologio, l'orologio funziona per tutte le dimensioni della tela.

Rimappa la posizione (0,0) (dell'oggetto di disegno) al centro dell'area di disegno:

ctx.translate(radius, radius);

Riduci il raggio dell'orologio (al 90%) per disegnare bene l'orologio all'interno della tela:

radius = radius * 0.90;

Crea una funzione per disegnare l'orologio:

function drawClock() {
  ctx.arc(0, 0, radius, 0 , 2 * Math.PI);
  ctx.fillStyle = "white";
  ctx.fill();
}