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();
}