L'API Canvas§

1

Principe§

2

Canvas§

La balise <canvas> de HTML5 crée un élément vide, sur lequel le code Javascript peut « dessiner » pour créer des images dynamiquement.

<canvas id="mycanvas" width="400" height="300"></canvas>

Note

La largeur et la hauteur, fixées dans la balise canvas, représentent sa taille initiale en pixels.

Si le canvas est redimensionné par CSS, sa taille d'affichage changera, et ses pixels seront redimensionnés en conséquence, mais le nombre de pixels (en largeur et en hauteur) ne changera pas.

3

Contexte§

Pour pouvoir dessiner sur un canvas, il faut d'abord récupérer un objet contexte :

var canvas = document.getElementById('mycanvas');
var ctx = canvas.getContext('2d');
4

Différents types de contexte§

5

Commandes de bases pour le contexte 2D§

6

Définir les couleurs§

Exemple :

ctx.strokeStyle = "red";
ctx.fillStyle = "#00FF00";

Note

Ces commandes ne dessinent rien par elles-mêmes, elles conditionnent le comportement des commandes lancées ensuite.

7

Dessiner un rectangle§

Exemple :

ctx.fillRect(canvas.width/4, canvas.height/4,
             canvas.width/2, canvas.height/2);
8

Largeur de ligne§

En plus de leur couleur, il est possible de choisir la largeur des lignes dessinées sur le canvas (par exemple par strokeRect).

Ceci se fait en changeant l'attribut lineWidth. Sa valeur est exprimée en pixels (mais peut être un nombre flottant).

9

Pour aller plus loin§

10

Projet§

11

Votre travail§

12

Pour aller plus loin§

13

Autres utilisations§

14

Autres manières de gérer le graphisme§

Une alternative aux Canvas est SVG (Standard Vector Graphics), un langage à balises similaire à HTML mais servant à décrire des images.

Ce langage est intégré à HTML5 et peut notamment être manipulé dans l'arbre DOM par du code Javascript.

Exemple :

<svg>
  <rect x="10" y="10" width="20" height="20"
        stroke="red" fill="lightYellow"></rect>
  <rect x="50" y="10" width="20" height="20"
        stroke="blue" fill="lightGreen"></rect>
</svg>
15