SVG.js предоставляет гибкий и мощный механизм управления визуальными
характеристиками линий и контуров графических объектов. Работа с
обводкой в этой библиотеке строится на свойствах stroke,
stroke-width, stroke-dasharray и других
параметрах, позволяющих детально настраивать внешний вид линий.
Толщина линии задается с помощью метода
.stroke({ width: значение }) или через отдельный метод
.strokeWidth(значение).
const draw = SVG().addTo('body').size(300, 300);
const rect = draw.rect(100, 100).stroke({ width: 5, color: '#f06' });
Метод .strokeWidth() позволяет изменить толщину линии
динамически:
rect.strokeWidth(10);
Цвет линии задается свойством color в объекте
stroke, либо методом
.stroke({ color: 'цвет' }). Для управления прозрачностью
используется opacity:
rect.stroke({ color: '#00f', opacity: 0.5 });
SVG.js поддерживает различные стили линий с помощью
stroke-dasharray. Этот параметр определяет
последовательность длин штрихов и промежутков:
// Сплошная линия
rect.stroke({ color: '#f06', width: 5, dasharray: '' });
// Пунктирная линия
rect.stroke({ color: '#f06', width: 5, dasharray: '5,5' });
// Длинные штрихи с промежутками
rect.stroke({ color: '#f06', width: 5, dasharray: '10,5,2,5' });
'длинаШтриха, длинаПробела, ...'.Метод .dasharray() также поддерживает передачу массива
чисел:
rect.dasharray([10, 5, 2, 5]);
Концы линий и соединения сегментов задаются через
stroke-linecap и stroke-linejoin.
stroke-linecap:
rect.stroke({ linecap: 'round' }); // round, square, butt
stroke-linejoin:
rect.stroke({ linejoin: 'round' }); // round, bevel, miter
Эти параметры особенно важны при рисовании многоугольников и сложных кривых, так как определяют визуальное соединение сегментов.
SVG.js позволяет изменять свойства линии после создания объекта без пересоздания графики:
rect.stroke({ width: 8, color: '#0f0', dasharray: '4,2', linecap: 'square', linejoin: 'bevel' });
Все изменения применяются мгновенно и автоматически обновляют отображение на холсте.
Методы работы с обводкой поддерживаются для всех примитивов:
rect, circle, line,
polyline, polygon, а также для групп объектов
(group). Для групп линии настраиваются через
.stroke() у самого объекта или через
.each():
const group = draw.group();
const c1 = group.circle(50).fill('none').stroke({ width: 3 });
const c2 = group.circle(30).fill('none').stroke({ width: 5, dasharray: '4,4' });
group.each(el => el.stroke({ color: '#333' }));
SVG.js поддерживает анимацию свойств линии через метод
.animate(). Толщину, цвет и штрихи можно анимировать
плавно:
rect.animate(1000, '<>').stroke({ width: 12, color: '#ff0', dasharray: '10,5' });
'<>' — плавное
ускорение/замедление).round).dasharray, где важно
правильно подобрать длину штрихов и промежутков.Эти возможности делают SVG.js мощным инструментом для детальной настройки визуального оформления линий и контуров в веб-графике.