Spec-Zone.ru › Web APIs

CanvasRenderingContext2D: метод setLineDash()

Базовая Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Метод setLineDash() API холста 2D CanvasRenderingContext2D интерфейса устанавливает шаблон штриховки для линий. Он использует массив значений, которые определяют чередующиеся длины линий и пробелов, описывающих шаблон.

Примечание: Чтобы вернуться к сплошным линиям, установите список штриховки на пустой массив.

Синтаксис

setLineDash(segments)

Параметры

segments

Массив Array чисел, определяющих расстояния для чередующегося рисования линии и пробела (в единицах координатной системы). Если количество элементов в массиве нечетно, элементы массива копируются и конкатенируются. Например, [5, 15, 25] преобразуется в [5, 15, 25, 5, 15, 25]. Если массив пуст, список штриховки очищается, и линии снова рисуются сплошными.

Возвращаемое значение

None (undefined).

Примеры

Базовый пример

В этом примере используется метод setLineDash() для рисования пунктирной линии над сплошной.

HTML

<canvas id="canvas"></canvas>

JavaScript

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

// Dashed line
ctx.beginPath();
ctx.setLineDash([5, 15]);
ctx.moveTo(0, 50);
ctx.lineTo(300, 50);
ctx.stroke();

// Solid line
ctx.beginPath();
ctx.setLineDash([]);
ctx.moveTo(0, 100);
ctx.lineTo(300, 100);
ctx.stroke();

Результат

Некоторые распространённые шаблоны

Этот пример демонстрирует различные распространённые шаблоны штриховки линий.

HTML

<canvas id="canvas"></canvas>

JavaScript

Функция drawDashedLine() созданная ниже, упрощает рисование нескольких пунктирных линий. Она принимает массив шаблона в качестве единственного параметра.

function drawDashedLine(pattern) {
  ctx.beginPath();
  ctx.setLineDash(pattern);
  ctx.moveTo(0, y);
  ctx.lineTo(300, y);
  ctx.stroke();
  y += 20;
}

const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
let y = 15;

drawDashedLine([]);
drawDashedLine([1, 1]);
drawDashedLine([10, 10]);
drawDashedLine([20, 5]);
drawDashedLine([15, 3, 3, 3]);
drawDashedLine([20, 3, 3, 3, 3, 3, 3, 3]);
drawDashedLine([12, 3, 3]); // Equals [12, 3, 3, 12, 3, 3]

Результат

Спецификации

Спецификация
HTML
# dom-context-2d-setlinedash-dev

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
setLineDash 23 12 27 15 7 25 27 14 7 1.5 4.4

См. также

  • Интерфейс, определяющий этот метод: CanvasRenderingContext2D
  • CanvasRenderingContext2D.getLineDash()
  • CanvasRenderingContext2D.lineDashOffset

© 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/setLineDash

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API