Le Canvas en JavaScript est un élément HTML qui permet de dessiner des graphiques, des animations, des jeux et bien plus encore directement dans un navigateur web. Il offre un contrôle complet sur chaque pixel affiché, ce qui en fait un outil puissant pour la création d’interfaces interactives et visuellement riches. Dans cette réponse, nous explorerons en détail comment utiliser JavaScript pour dessiner sur un élément Canvas.
Création de l’élément Canvas :
Pour commencer à dessiner sur un Canvas en JavaScript, vous devez d’abord créer un élément Canvas dans votre HTML. Voici comment vous pouvez le faire :

La solution définitive pour raccourcir les liens et gérer vos campagnes digitales de manière professionnelle.
• Raccourcissement instantané et rapide des liens
• Pages de profil interactives
• Codes QR professionnels
• Analyses détaillées de vos performances digitales
• Et bien plus de fonctionnalités gratuites !
html<canvas id="myCanvas" width="800" height="600">canvas>
Cela crée un élément Canvas avec l’identifiant « myCanvas » et une taille de 800 pixels de large sur 600 pixels de haut.
Obtention du contexte de rendu :
Une fois que vous avez créé votre Canvas, vous devez obtenir son contexte de rendu en JavaScript. C’est à travers ce contexte que vous pourrez dessiner sur le Canvas. Voici comment vous pouvez obtenir le contexte 2D :
javascriptvar canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
Maintenant que vous avez obtenu le contexte 2D, vous êtes prêt à commencer à dessiner sur le Canvas.
Dessiner des formes simples :
Le contexte 2D du Canvas offre plusieurs méthodes pour dessiner des formes simples telles que des lignes, des rectangles, des cercles, etc. Voici quelques exemples :
Dessiner une ligne :
javascriptctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(300, 100);
ctx.stroke();
Dessiner un rectangle rempli :
javascriptctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 200, 100);
Dessiner un cercle :
javascriptctx.beginPath();
ctx.arc(200, 200, 50, 0, Math.PI * 2);
ctx.stroke();
Dessiner du texte :
Vous pouvez également dessiner du texte sur un Canvas en utilisant la méthode fillText
ou strokeText
. Voici un exemple :
javascriptctx.font = '30px Arial';
ctx.fillStyle = 'red';
ctx.fillText('Hello, World!', 100, 100);
Gestion des événements :
Vous pouvez rendre votre Canvas interactif en écoutant les événements de la souris, du clavier, etc. Voici un exemple d’écoute des clics de souris sur le Canvas :
javascriptcanvas.addEventListener('click', function(event) {
var x = event.clientX - canvas.getBoundingClientRect().left;
var y = event.clientY - canvas.getBoundingClientRect().top;
console.log('Clic détecté aux coordonnées : ' + x + ', ' + y);
});
Animation :
Le Canvas est également très utile pour créer des animations. Vous pouvez utiliser la méthode requestAnimationFrame
pour mettre à jour votre animation de manière optimisée. Voici un exemple simple d’animation de déplacement d’un carré :
javascriptvar x = 0;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = 'green';
ctx.fillRect(x, 50, 50, 50);
x += 1;
requestAnimationFrame(draw);
}
draw();
Conclusion :
En résumé, le Canvas en JavaScript est un outil puissant pour dessiner des graphiques et créer des expériences interactives dans les navigateurs web. En comprenant les bases du dessin sur Canvas, vous pouvez créer une grande variété de contenus visuels, des jeux aux visualisations de données. Explorez davantage les possibilités offertes par le Canvas et laissez libre cours à votre créativité pour créer des expériences web captivantes.
Plus de connaissances
Bien sûr, explorons davantage les possibilités offertes par le dessin sur le Canvas en JavaScript.
Transformation et manipulation :
Outre le dessin de formes simples, le Canvas permet également de manipuler et de transformer ces formes. Vous pouvez effectuer des translations, des rotations, des mises à l’échelle, et bien plus encore. Par exemple, pour déplacer un rectangle à chaque trame d’animation, vous pouvez utiliser les méthodes de transformation comme suit :
javascriptvar angle = 0;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.save(); // Sauvegarde le contexte actuel
ctx.translate(canvas.width / 2, canvas.height / 2); // Déplace l'origine au centre du Canvas
ctx.rotate(angle); // Fait pivoter selon l'angle actuel
ctx.fillStyle = 'blue';
ctx.fillRect(-50, -50, 100, 100); // Dessine un rectangle centré à l'origine
ctx.restore(); // Restaure le contexte précédent
angle += 0.1; // Augmente l'angle pour une rotation continue
requestAnimationFrame(draw);
}
draw();
Utilisation d’images :
En plus des formes géométriques, vous pouvez également dessiner des images sur le Canvas. Cela peut être utile pour afficher des sprites dans les jeux ou pour afficher des images de manière dynamique. Voici comment vous pouvez dessiner une image sur le Canvas :
javascriptvar img = new Image();
img.onload = function() {
ctx.drawImage(img, 100, 100); // Dessine l'image aux coordonnées spécifiées
}
img.src = 'image.jpg'; // Spécifiez le chemin de l'image
Utilisation de gradients et de motifs :
Le Canvas prend également en charge les gradients et les motifs, ce qui vous permet de remplir des formes avec des dégradés de couleurs ou des motifs répétitifs. Par exemple, pour remplir un rectangle avec un dégradé linéaire, vous pouvez utiliser le code suivant :
javascriptvar gradient = ctx.createLinearGradient(0, 0, 200, 0);
gradient.addColorStop(0, 'red');
gradient.addColorStop(1, 'blue');
ctx.fillStyle = gradient;
ctx.fillRect(50, 50, 200, 100);
De même, vous pouvez remplir une forme avec un motif en utilisant une image :
javascriptvar img = new Image();
img.onload = function() {
var pattern = ctx.createPattern(img, 'repeat');
ctx.fillStyle = pattern;
ctx.fillRect(50, 50, 200, 100);
}
img.src = 'pattern.png';
Utilisation des ombres :
Le Canvas permet également d’ajouter des ombres aux formes dessinées, ce qui peut ajouter de la profondeur et du réalisme à vos dessins. Voici comment vous pouvez ajouter une ombre à un rectangle :
javascriptctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.shadowBlur = 5;
ctx.shadowColor = 'rgba(0, 0, 0, 0.5)';
ctx.fillStyle = 'blue';
ctx.fillRect(50, 50, 200, 100);
Conclusion :
Le Canvas en JavaScript offre une multitude de fonctionnalités pour créer des graphiques, des animations et des expériences interactives dans les navigateurs web. En comprenant les différentes méthodes et propriétés disponibles, ainsi que les concepts de base du dessin sur le Canvas, vous pouvez créer des applications web riches et dynamiques. Continuez à explorer et à expérimenter avec le Canvas pour découvrir tout son potentiel créatif.