Accueil

Traduction

Tutoriel Canvas - sommaire

Tutoriel Canvas - recherche

L'auteur : Patrick Darcheville

Vous pouvez me contacter via Facebook pour questions & suggestions : Page Facebook relative à mon site

Canvas : animations basiques

Le principe d'une animation Canvas est simple : appeler à intervalles réguliers une fonction d'animation via une instruction basée sur la fonction setInterval().

Première animation

Le cercle a un rayon de plus en plus grand puis diminue et le cycle recommence.

Le code correspondant

Code HTML :

Si clic sur le bouton de commande provoque l'arrêt de l'animation.

Le script :

Au travers de cet exemple simple vous devez comprendre le principe de l'animation automatique dans CANVAS.
Grâce à la fonction setInterval on appelle une fonction nommée animate selon une certaine fréquence (toutes les 100 millisecondes soit 10 fois par seconde).

Dans la fonction animate on efface le précédent rond grâce à la méthode clearRect(0,0,X,Y) puis on crée un nouveau cercle avec un rayon différent.
Dès que le rayon atteint la valeur maxi (moitié de la largeur de Canevas) la variable variation devient égal à -1. Donc la variable rayon est décrémentée.
Dès que le rayon redevient égal à 10 variation redevient égal à +1. Donc la variable rayon est incrémentée.

Notez que l'appel régulier de la fonction d'animation est référencé par une variable nommée stop.
Ainsi l'instruction clearInterval(stop) met fin à l'animation.

Animation 2

Le carré est de plus en plus grand et opaque puis de plus en plus petit et transparent ; le cycle recommence. Mais le carré est toujours centré dans le canevas.

Le code correspondant

Le canevas 'responsive' fait 300 par 300.
Le script :

Le script est un peu plus compliqué car il faut calculer à chaque fois les nouvelles coordonnées de l'angle haut gauche du carré afin qu'il soit toujours centré.

Imaginez les deux instruction HTML ! : une pour dessiner le canevas et une autre pour dessiner le bouton de commande avec fin de l'animation si clic.

Animation 3

Cette fois c'est le visiteur qui par clic successifs change l'aspect du rond.

L'animation

Le rond est d'abord très transparent puis à chaque clic dans le canevas il devient de plus en plus grand et de plus en plus opaque.

Le script correspondant

Ce troisième canevas 'responsive' de la page fait aussi 300 par 300.
Le script :

J'utilise le constructeur d'objets Path2D pour définir une forme graphique (un rond) en début de script.

Dans ce troisième script de la page on retrouve des variables qui portent le même nom que pour le premier script (canevas, contexte, X, Y, rayon, maxi, opacite, etc.). Et pourtant il n'y a aucune ambiguïté car ces variables sont définies dans le cadre d'une fonction donc sont locales !

Animation 4

Ci-dessous un document HTML dans un Iframe.
Ce document comprend un canevas.

Les carrés sont bordurés de bleu et de plus en plus grand.
Il n'y a pas de bouton de commande : un clic sur le canevas pour démarrer l'animation ; l'arrêt est automatique.

Le script correspondant

Intérêt de cette animation

Il s'agit de l'animation d'un modèle de forme réalisé avec le constructeur Path2D().
La fonction d'animation n'intègre pas l'instruction clearRect() puisque les dessins doivent s'ajouter.