В Two.js пути (Path) являются основой
для создания сложных фигур и анимаций. Объединение путей позволяет
создавать более сложные композиции из простых примитивов, управлять
контуром фигур и применять к ним трансформации. Основными инструментами
для работы с объединением являются методы добавления, вложения и
использования групп (Group) и составных форм
(CompoundPath).
Two.Path представляет собой последовательность векторов,
соединённых линиями или кривыми. Основные свойства:
Two.Anchor),
определяющих контур;Пример создания простого пути:
const path = new Two.Path([
new Two.Anchor(0, 0),
new Two.Anchor(50, 0),
new Two.Anchor(50, 50),
new Two.Anchor(0, 50)
], true); // true – путь замкнут
path.fill = '#FF8000';
path.stroke = '#000000';
two.add(path);
Group) как инструмент объединенияTwo.Group позволяет объединять несколько объектов,
включая пути, в одну логическую единицу. Все трансформации, применяемые
к группе, затрагивают все её элементы.
Пример создания группы из двух путей:
const circle = two.makeCircle(50, 50, 30);
const rectangle = two.makeRectangle(50, 50, 60, 40);
const group = two.makeGroup(circle, rectangle);
group.translation.set(100, 100); // перемещает всю группу
group.rotation = Math.PI / 4; // поворот всей группы
Ключевые моменты при работе с группами:
Для объединения нескольких контуров в один путь используется
Two.CompoundPath. Этот объект создаёт единый путь,
содержащий несколько под-путей.
const path1 = two.makeRectangle(0, 0, 50, 50);
const path2 = two.makeCircle(25, 25, 20);
const compound = new Two.CompoundPath(path1, path2);
compound.fill = '#00AAFF';
compound.stroke = '#000000';
two.add(compound);
Особенности CompoundPath:
Two.js предоставляет гибкие методы для работы с объединёнными путями:
Пример динамического объединения:
const line = new Two.Path([new Two.Anchor(0, 0), new Two.Anchor(100, 0)]);
const circle = two.makeCircle(50, 0, 25);
const compoundDynamic = new Two.CompoundPath(line);
compoundDynamic.add(circle);
two.add(compoundDynamic);
Объединение путей позволяет:
С помощью сочетания Group и
CompoundPath можно строить как визуально
простые, так и сложные динамические графические объекты, управляя ими
централизованно через трансформации и свойства рендеринга.