Элемент <path> является самым универсальным
инструментом для построения векторной графики в SVG. В отличие от
примитивов (<rect>, <circle>,
<line>), он позволяет описывать произвольные формы
любой сложности: от простых линий до сложных кривых и контуров.
В контексте анимации с использованием библиотеки Vivus именно
<path> играет ключевую роль, поскольку библиотека
работает с длиной контура и последовательно «прорисовывает» его.
d: основа
построения путиАтрибут d (от слова data) содержит
последовательность команд, описывающих геометрию пути.
Пример:
<path d="M10 10 L100 100" />
Команды делятся на абсолютные (заглавные буквы) и относительные (строчные):
M x yL x yH xV yC x1 y1, x2 y2, x yQ x1 y1, x yA rx ry x-axis-rotation large-arc-flag sweep-flag x y<path d="M50 50 C 100 0, 150 100, 200 50" />
Этот путь создаёт плавную кривую между точками.
strokeОпределяет цвет линии.
<path d="..." stroke="black" />
stroke-widthТолщина линии.
<path d="..." stroke="black" stroke-width="2" />
fillЦвет заливки внутри контура.
<path d="..." fill="red" />
Для анимаций Vivus часто используется:
fill="none"
Это связано с тем, что библиотека анимирует именно обводку
(stroke), а не заливку.
stroke-dasharrayОпределяет шаблон штриховки линии.
stroke-dasharray="5,5"
В Vivus этот атрибут используется для создания эффекта «рисования» линии.
stroke-dashoffsetСмещение штриховки.
stroke-dashoffset="100"
Vivus изменяет это значение от полной длины пути до нуля, создавая иллюзию прорисовки.
M100 100m10 10 (смещение от текущей
позиции)Смешивание типов позволяет строить компактные и гибкие описания.
Z<path d="M10 10 L100 10 L100 100 Z" />
Vivus использует длину пути для расчёта анимации.
const path = document.querySelector('path');
const length = path.getTotalLength();
Это значение используется для установки:
path.style.strokeDasharray = length;
path.style.strokeDashoffset = length;
Чем меньше команд в d, тем легче обрабатывать путь:
<path>Vivus работает только с <path>, поэтому:
<rect> → <path>
<circle> → <path>
Обычно выполняется через графические редакторы (например, экспорт SVG).
C)Позволяют создавать сложные плавные формы.
C x1 y1, x2 y2, x y
Q)Более простая альтернатива:
Q x1 y1, x y
A) и их параметрыКоманда дуги — одна из самых сложных:
A rx ry rotation large-arc sweep x y
rx, ry — радиусыrotation — угол поворотаlarge-arc — большая или малая дуга (0 или 1)sweep — направлениеVivus анимирует путь в порядке следования команд. Это означает:
Сложные изображения лучше разбивать:
<path d="..." />
<path d="..." />
Это позволяет:
<g><g transform="translate(50,50)">
<path d="..." />
</g>
Позволяет применять трансформации ко всем вложенным путям.
transform<path d="..." transform="scale(2)" />
Поддерживает:
translatescalerotateskewstroke задан)fill="none"display: none)Ошибки в d приводят к:
Методы проверки:
getTotalLength())<path
d="M10 10 L100 100"
stroke="black"
stroke-width="2"
fill="none"
/>
Такой путь:
Глубокое понимание элемента <path> и его атрибутов
позволяет точно контролировать как внешний вид, так и поведение анимации
в Vivus, превращая статические SVG в динамические визуальные
последовательности.