CanvasRenderingContext2D.lineCap
La propriété CanvasRenderingContext2D.lineCap de l'API Canvas 2D détermine la façon dont les extrémités de chaque ligne sont dessinées. Il y a trois valeurs possibles pour cette propriété, qui sont : butt
, round
et square
. Par défaut, cette propriété est définie comme butt
.
Voir aussi le chapitre Ajout de styles et de couleurs dans le Tutoriel canvas.
Syntaxe
ctx.lineCap = "butt";
ctx.lineCap = "round";
ctx.lineCap = "square";
Options
Exemples
>Utilisation de la propriété <code>lineCap</code>
Il ne s'agit que d'un fragment de code simple utilisant la propriété lineCap pour dessiner des lignes avec des extrémités arrondies.
HTML
<canvas id="canevas"></canvas>
JavaScript
var canevas = document.getElementById("canevas");
var ctx = canevas.getContext("2d");
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineWidth = 15;
ctx.lineCap = "round";
ctx.lineTo(100, 100);
ctx.stroke();
Modifiez le code ci-dessous et voyez vos modifications mises à jour en direct dans le canvas :
Code jouable
Un exemple de <code>lineCap</code>
Dans cet exemple, trois lignes sont dessinées, chacune avec une valeur différente pour la propriété lineCap
. Deux guides pour voir les différences exactes entre les trois ont été ajoutés. Chacune de ces lignes commence et se termine exactement sur ces guides.
La ligne à gauche utilise l'option par défaut butt
. Elle est dessinée complètement au raz des guides. La seconde est paramétrée pour utiliser l'option round
. Cela ajoute à l'extrémité un demi-cercle d'un rayon égal à la moitié de la largeur de la ligne. La ligne de droite utilise l'option square
. Cela ajoute un rectangle de longueur égale à l'épaisseur de la ligne et de largeur moitié.
var ctx = document.getElementById("canevas").getContext("2d");
var lineCap = ["butt", "round", "square"];
// Dessiner les guides
ctx.strokeStyle = "#09f";
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(140, 10);
ctx.moveTo(10, 140);
ctx.lineTo(140, 140);
ctx.stroke();
// Dessiner les lignes
ctx.strokeStyle = "black";
for (var i = 0; i < lineCap.length; i++) {
ctx.lineWidth = 15;
ctx.lineCap = lineCap[i];
ctx.beginPath();
ctx.moveTo(25 + i * 50, 10);
ctx.lineTo(25 + i * 50, 140);
ctx.stroke();
}
Spécifications
Compatibilité des navigateurs
Voir aussi
- L'interface la définissant,
CanvasRenderingContext2D
CanvasRenderingContext2D.lineWidth
CanvasRenderingContext2D.lineJoin