Initiation à Canvas
Définition : Canvas
La balise HTML <canvas> est utilisée pour faire des dessins graphiques à l'aide d'un script JavaScript. L'élément <canvas> est juste un conteneur pour les dessins, il faut utiliser un script pour dessiner. Canvas permet de dessiner des lignes, des carrés, des cercles, des textes...
Exemple : Code minimal
<canvas id="mon_canvas" width="500" height="500" />
<script type="text/javascript">
var c = document.getElementById("mon_canvas");
var ctx = c.getContext('2d');
// On effectue ici toutes les opérations de dessin
</script>
On commence par créer une balise d'identifiant mon_canvas définissant une zone de dessin de 500px de largeur et 500px de hauteur.
On utilise ensuite le DOM pour stocker l'élément mon_canvas dans la variable c.
On lui applique alors la fonction getContext() qui retourne le contexte de dessin (2D ou 3D), c'est-à-dire un ensemble de méthodes et attributs qui permettent de dessiner et manipuler les images dans l'élément mon_canvas. Dans le cadre de l'API Canvas il s'agira toujours de getContext('2d'), getContext('3d') étant du WebGL.
Exemple : Dessiner un carré rouge
<html><body>
<canvas id="mon_canvas" width="200" height="200"
style="border:1px solid #c3c3c3;">
Le navigateur ne reconnaît pas l'élément Canvas
</canvas>
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0,0,100,100);
</script>
</body>
</html>
La propriété fillStyle permet de définir la couleur de remplissage.
La méthode fillRect(x,y,largeur, longueur) dessine un rectangle partant de (x,y).

Exemple : Dessiner une ligne
<script>
var canvas = document.getElementById("mon_canvas");
var ctx = canvas.getContext("2d");
ctx.moveTo(0,100);
ctx.lineTo(200,100);
ctx.stroke();
</script>

La fonction moveTo(x,y) permet de se déplacer au point de coordonnées (x, y) en partant du coin supérieur gauche, cela sans effectuer de tracé.
La fonction lineTo(x,y) définit un tracé jusqu'au point de coordonnées (x, y).
La fonction stroke() permet de dessiner le tracé défini précédemment.