CanvasRenderingContext2D: свойство lineCap
Базовая линия Широко доступно
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство CanvasRenderingContext2D.lineCap API Canvas 2D определяет форму, используемую для рисования конечных точек линий.
Примечание: Линии можно рисовать с помощью методов stroke(), strokeRect() и strokeText().
Значение
Одно из следующих:
Примеры
Изменение формы концов линии
В этом примере скруглены конечные точки прямой линии.
HTML
<canvas id="canvas"></canvas>
JavaScript
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();
Результат
Сравнение концов линий
В этом примере нарисованы три линии, каждая с разным значением свойства lineCap. Добавлено два направляющих, чтобы увидеть точные различия между тремя. Каждая из этих линий начинается и заканчивается ровно на этих направляющих.
Линия слева использует значение по умолчанию "butt". Она нарисована полностью вровень с направляющими. Вторая линия использует значение "round". Это добавляет полукруг к концу, радиус которого равен половине ширины линии. Линия справа использует значение "square". Это добавляет прямоугольник, ширина которого равна ширине линии, а высота — половине ширины линии.
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
// 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";
["butt", "round", "square"].forEach((lineCap, i) => {
ctx.lineWidth = 15;
ctx.lineCap = lineCap;
ctx.beginPath();
ctx.moveTo(25 + i * 50, 10);
ctx.lineTo(25 + i * 50, 140);
ctx.stroke();
});
Спецификации
| Спецификация |
|---|
| HTML # dom-context-2d-linecap-dev |
Совместимость браузеров
| Рабочие столы | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
lineCap |
1 | 12 | 1.5 | ≤12.1 | 2 | 18 | 4 | ≤12.1 | 1 | 1.0 | 4.4 |
Примечания для WebKit/Blink
- В браузерах на основе WebKit и Blink, помимо этого свойства, реализован нестандартный и устаревший метод
ctx.setLineCap().
См. также
- Интерфейс, определяющий это свойство:
CanvasRenderingContext2D CanvasRenderingContext2D.lineWidthCanvasRenderingContext2D.lineJoin- Применение стилей и цветов
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/lineCap