--- title: CanvasRenderingContext2D.lineCap slug: Web/API/CanvasRenderingContext2D/lineCap tags: - API - Canvas - Property translation_of: Web/API/CanvasRenderingContext2D/lineCap ---
Свойство CanvasRenderingContext2D
.lineCap
предоставляемое Canvas 2D API определяет, как будут выглядеть концы нарисованных линий.
Примечание: Линии могут быть нарисованы с помощью методов {{domxref("CanvasRenderingContext2D.stroke()", "stroke()")}}, {{domxref("CanvasRenderingContext2D.strokeRect()", "strokeRect()")}}, и {{domxref("CanvasRenderingContext2D.strokeText()", "strokeText()")}} methods.
ctx.lineCap = "butt" || "round" || "square";
butt
round
square
Ниже представлен простой фрагмент кода, использующий lineCap.
<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.moveTo(20, 20); ctx.lineWidth = 15; ctx.lineCap = 'round'; ctx.lineTo(100, 100); ctx.stroke();
{{ EmbedLiveSample('Использование_свойства_lineCap', 700, 180) }}
В примере нарисованы три линии с разными значениями lineCap
. Для наглядности мы добавим две направляющие. Каждая линия будет начинаться и заканчиваться этими направляющими.
Левая линия будет использовать значение lineCap "butt"
. Она не будет выходить за направляющие. Средняя линия будет нарисована со значением lineCap "round"
. За направляющие будут выходить полукруги с диаметром равным толщине линии. Правая линия будет использовать значение "square"
. Она будет выходить за направляющие на поля с шириной равной толщине линии и высотой равной половине толщины.
<canvas id="canvas" width="150" height="150"></canvas>
const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d'); const lineCap = ['butt', 'round', 'square']; // Draw guides ctx.strokeStyle = '#09f'; ctx.beginPath(); ctx.moveTo(10, 10); ctx.lineTo(140, 10); ctx.moveTo(10, 140); ctx.lineTo(140, 140); ctx.stroke(); // Draw lines ctx.strokeStyle = 'black'; for (let 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(); }
{{EmbedLiveSample("Разница_между_значениями_lineCap", "180", "180", "https://mdn.mozillademos.org/files/236/Canvas_linecap.png")}}
Спецификация | Статус | Комментарий |
---|---|---|
{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-linecap", "CanvasRenderingContext2D.lineCap")}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.CanvasRenderingContext2D.lineCap")}}
ctx.setLineCap()
.