Horloge en toile


Dans ces chapitres, nous allons construire une horloge analogique en utilisant le canevas HTML.


Partie I - Créer le canevas

L'horloge a besoin d'un conteneur HTML. Créez un canevas HTML :

Code 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>


Code expliqué

Ajoutez un élément HTML <canvas> à votre page :

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

Créez un objet canvas (var canvas) à partir de l'élément HTML canvas :

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

Créez un objet de dessin 2d (var ctx) pour l'objet canvas :

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

Calculez le rayon de l'horloge en utilisant la hauteur de la toile :

var radius = canvas.height / 2;

L'utilisation de la hauteur de la toile pour calculer le rayon de l'horloge permet à l'horloge de fonctionner pour toutes les tailles de toile.

Remappez la position (0,0) (de l'objet dessin) au centre du canevas :

ctx.translate(radius, radius);

Réduisez le rayon de l'horloge (à 90 %) pour dessiner l'horloge bien à l'intérieur du canevas :

radius = radius * 0.90;

Créez une fonction pour dessiner l'horloge :

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