⊗jsSpCnvLn 262 of 294 menu

Dessiner des lignes via canvas en JavaScript

Commençons simplement - par le dessin de lignes. Pour comprendre comment cela fonctionne, imaginez que vous avez une feuille de papier et un crayon. Vous pouvez dessiner sur cette feuille, ou simplement déplacer le crayon vers un point souhaité sans dessiner.

JavaScript fonctionne de la même manière : il a un crayon (ou un stylo pour dessiner), vous pouvez le déplacer à l'endroit souhaité en utilisant la méthode moveTo, et dessiner - en utilisant la méthode lineTo.

Les deux méthodes prennent comme paramètres le point vers lequel déplacer la pointe du stylo - le premier paramètre est la coordonnée horizontale, et le second - la coordonnée verticale. L'origine des coordonnées - le point 0, 0 - est le coin supérieur gauche de l'élément.

Lorsque le stylo est déplacé vers le point souhaité - la méthode moveTo se contente de le déplacer, tandis que lineTo, lors du déplacement, dessine une ligne de la position actuelle du stylo jusqu'au point vers lequel il se déplace.

Cependant, si vous exécutez le code ci-dessus - rien ne se passera : il est nécessaire d'écrire deux commandes supplémentaires : la première commande beginPath doit être indiquée avant de commencer à dessiner la ligne, et la seconde commande stroke doit être appelée après toutes les combinaisons de moveTo et lineTo pour que la ligne soit dessinée.

Ainsi, écrivons un code fonctionnel pour dessiner une ligne :

Dessinons une ligne

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.stroke();

:

Dessinons un V

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.stroke();

:

Dessinons un triangle

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); ctx.lineTo(50, 50); ctx.stroke();

:

Dessinons un carré

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(150, 50); ctx.lineTo(150, 150); ctx.lineTo(50, 150); ctx.closePath(); ctx.stroke();

:

Fermeture des formes

Pour dessiner une forme fermée, il n'est pas obligatoire de tracer toutes les lignes - la dernière ligne peut être tracée automatiquement et fermer la forme. Pour cela, avant la méthode stroke, il faut appeler la méthode closePath.

Cette méthode tente de fermer la forme en dessinant une ligne droite du point final au point initial. Si la forme était déjà fermée ou n'est qu'un simple point, alors la méthode ne fait rien.

Dessinons un triangle en utilisant closePath :

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - cette étape est omise ctx.closePath(); ctx.stroke();

:

Remplissage des formes

Au lieu de la méthode stroke, on peut utiliser la méthode fill - dans ce cas, la forme n'a pas besoin d'être entièrement fermée - elle se remplira quand même :

<canvas width="200" height="200" style="background: #f4f4f4;"></canvas> let canvas = document.querySelector('canvas'); let ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(50, 50); ctx.lineTo(100, 100); ctx.lineTo(150, 50); //ctx.lineTo(50, 50); - cette étape est omise //ctx.closePath(); - et celle-ci aussi ctx.fill();

:

Problèmes pratiques

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser