JavaScript - Canvas: Guide pour les débutants en dessin numérique

Salut là, futur programmeur ! Je suis ravi de vous guider dans cette aventure passionnante vers le monde de JavaScript et du Canvas. En tant que quelqu'un qui enseigne l'informatique depuis plus d'une décennie, je peux vous dire que le Canvas est l'un des sujets les plus amusants et gratifiants à apprendre. C'est comme avoir un terrain de jeu numérique directement dans votre navigateur !

JavaScript - Canvas

Qu'est-ce que le Canvas ?

Avant de plonger dans le code, comprenons ce qu'est le Canvas. Imaginez que vous avez une feuille blanche et un ensemble de stylos colorés. Voilà essentiellement ce qu'est le Canvas dans le monde numérique - une zone vierge sur votre page web où vous pouvez dessiner ce que vous voulez en utilisant JavaScript !

Le Canvas a été introduit avec HTML5 et est depuis devenu un outil puissant pour créer des graphiques, des animations et même des jeux directement dans les navigateurs web. C'est comme avoir un mini studio d'art directement dans votre éditeur de code !

Utiliser le Canvas avec JavaScript

Maintenant, mettons nos manches à la pâte et commencer à dessiner ! Premièrement, nous devons configurer notre Canvas en HTML.

<canvas id="myCanvas" width="400" height="200"></canvas>

Cela crée un élément canvas de 400 pixels de large et 200 pixels de haut. Pensez-y comme votre tableau de dessin numérique.

Commencer avec le Canvas

Pour commencer à dessiner sur notre canvas, nous devons obtenir une référence à celui-ci dans notre code JavaScript et obtenir son contexte de dessin.

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

La méthode getContext('2d') nous donne un contexte de rendu 2D - l'outil que nous utiliserons pour dessiner sur notre canvas.

Dessiner des formes

Commençons par quelque chose de simple - dessiner un rectangle !

ctx.fillStyle = 'bleu';
ctx.fillRect(50, 50, 100, 75);

Ce code dessine un rectangle bleu démarquant aux coordonnées (50, 50) avec une largeur de 100 pixels et une hauteur de 75 pixels. C'est comme dire à votre stylo numérique, "Eh, dessine un rectangle ici, et fais-le de cette taille !"

Dessiner des lignes

Maintenant, essayons de dessiner une ligne :

ctx.beginPath();
ctx.moveTo(50, 50);
ctx.lineTo(200, 100);
ctx.stroke();

Ce code commence un nouveau chemin, déplace le "stylo" à (50, 50), puis dessine une ligne vers (200, 100), et enfin trace le chemin pour le rendre visible. C'est comme jouer à connecter les points, mais avec du code !

Dessiner des cercles

Que diriez-vous de dessiner un visage souriant ? Commençons par dessiner un cercle pour le visage :

ctx.beginPath();
ctx.arc(200, 100, 50, 0, Math.PI * 2);
ctx.fillStyle = 'jaune';
ctx.fill();
ctx.stroke();

Cela dessine un cercle jaune avec un contour noir. La méthode arc peut sembler effrayante, mais pensez-y comme dire à votre stylo, "Dessine un cercle centré à (200, 100), avec un rayon de 50, en partant de 0 et en allant tout autour (c'est ce que signifie Math.PI * 2)."

Ajouter du texte

Ajoutons un peu de texte à notre canvas :

ctx.font = '20px Arial';
ctx.fillStyle = 'noir';
ctx.fillText('Bonjour, Canvas !', 10, 30);

Cela définit la police à 20 pixels Arial, met la couleur en noir, et écrit "Bonjour, Canvas !" en partant de la position (10, 30).

Exemples

Maintenant que nous avons couvert les bases, regardons quelques exemples amusants pour voir ce que le Canvas peut vraiment faire !

Exemple 1 : Dessiner une maison

// Configurer le canvas
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

// Dessiner le corps de la maison
ctx.fillStyle = 'brun';
ctx.fillRect(100, 100, 150, 100);

// Dessiner le toit
ctx.beginPath();
ctx.moveTo(100, 100);
ctx.lineTo(175, 50);
ctx.lineTo(250, 100);
ctx.fillStyle = 'rouge';
ctx.fill();

// Dessiner la porte
ctx.fillStyle = 'bleu';
ctx.fillRect(150, 150, 50, 50);

// Dessiner la fenêtre
ctx.fillStyle = 'jaune';
ctx.fillRect(200, 120, 30, 30);

Ce code dessine une maison simple avec un corps brun, un toit rouge, une porte bleue et une fenêtre jaune. C'est comme construire une maison avec des blocs de code au lieu de Lego !

Exemple 2 : Cercle animé

Faisons bouger les choses ! Voici une simple animation d'un cercle rebondissant :

const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');

let x = 50;
let y = 50;
let dx = 2;
let dy = 2;
const radius = 20;

function drawCircle() {
ctx.clearRect(0, 0, canvas.width, canvas.height);

ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI * 2);
ctx.fillStyle = 'vert';
ctx.fill();

if (x + radius > canvas.width || x - radius < 0) {
dx = -dx;
}
if (y + radius > canvas.height || y - radius < 0) {
dy = -dy;
}

x += dx;
y += dy;

requestAnimationFrame(drawCircle);
}

drawCircle();

Ce code crée un cercle vert qui rebondit autour du canvas. C'est comme créer votre propre petit jeu de Pong !

Tableau des méthodes Canvas

Voici un tableau pratique des méthodes Canvas couramment utilisées que nous avons utilisées et de quelques autres :

Méthode Description
fillRect(x, y, width, height) Dessine un rectangle rempli
strokeRect(x, y, width, height) Dessine un contour de rectangle
clearRect(x, y, width, height) Efface la zone rectangulaire spécifiée
beginPath() Commence un nouveau chemin
moveTo(x, y) Déplace le chemin au point spécifié
lineTo(x, y) Dessine une ligne jusqu'au point spécifié
arc(x, y, radius, startAngle, endAngle) Dessine un arc ou un cercle
fill() Remplit le chemin actuel
stroke() Trace le chemin actuel
fillText(text, x, y) Dessine du texte rempli sur le canvas
strokeText(text, x, y) Dessine des contours de texte

Souvenez-vous, apprendre à coder est comme apprendre une nouvelle langue. Ça prend du temps et de la pratique, mais avant de savoir, vous serez créer des choses incroyables avec Canvas ! Continuez à expérimenter, essayez de combiner différentes formes et méthodes, et, surtout, amusez-vous bien. Qui sait ? Le prochain grand jeu web pourrait être créé par vous en utilisant Canvas !

Credits: Image by storyset