Paper.js предоставляет мощный набор инструментов для работы с
векторной графикой, включая возможность объединять, вычитать, пересекать
и исключать формы с помощью булевых операций. Эти
операции работают на уровне объектов типа Path или
CompoundPath, позволяя создавать сложные фигуры из простых
элементов.
unite()Метод unite() позволяет объединить два объекта в один,
сохраняя все внешние контуры. В результате создается новая фигура,
представляющая совокупность всех областей исходных
форм.
var circle = new Path.Circle({
center: [100, 100],
radius: 50,
fillColor: 'red'
});
var rectangle = new Path.Rectangle({
point: [80, 80],
size: [100, 100],
fillColor: 'blue'
});
var combined = circle.unite(rectangle);
combined.fillColor = 'green';
Особенности метода:
Path.subtract()Метод subtract() выполняет вычитание одной фигуры из
другой. Итоговая фигура сохраняет области первой формы, не
перекрытые второй.
var shape1 = new Path.Rectangle({
point: [50, 50],
size: [150, 100],
fillColor: 'orange'
});
var shape2 = new Path.Circle({
center: [120, 100],
radius: 50,
fillColor: 'purple'
});
var result = shape1.subtract(shape2);
result.fillColor = 'yellow';
Ключевые моменты:
intersect()Метод intersect() создает новую фигуру, которая
представляет область пересечения двух объектов. Это
позволяет получить точное перекрытие форм.
var rect = new Path.Rectangle({
point: [50, 50],
size: [150, 100],
fillColor: 'lightblue'
});
var circle = new Path.Circle({
center: [120, 100],
radius: 60,
fillColor: 'pink'
});
var intersection = rect.intersect(circle);
intersection.fillColor = 'purple';
Особенности использования:
Path.CompoundPath для объединения
нескольких пересекающихся объектов.exclude()Метод exclude() (или XOR) создает
фигуру, состоящую из областей, которые принадлежат только одной
из двух форм, исключая их пересечение.
var star = new Path.Star({
center: [150, 150],
points: 5,
radius1: 60,
radius2: 30,
fillColor: 'red'
});
var circle = new Path.Circle({
center: [150, 150],
radius: 50,
fillColor: 'blue'
});
var xorShape = star.exclude(circle);
xorShape.fillColor = 'green';
Особенности метода:
CompoundPathДля более сложных форм Paper.js использует CompoundPath.
Булевые операции можно применять к составным объектам так же, как к
обычным Path.
var circle1 = new Path.Circle([100, 100], 50);
var circle2 = new Path.Circle([130, 100], 50);
var compound = new CompoundPath({
children: [circle1, circle2],
fillColor: 'orange'
});
var rectangle = new Path.Rectangle([90, 90], [80, 60]);
var finalShape = compound.subtract(rectangle);
finalShape.fillColor = 'blue';
Преимущества использования
CompoundPath:
closed), иначе результат может быть непредсказуемым.unite(), затем
subtract() и intersect() для сложных
эффектов.Эти методы делают Paper.js мощным инструментом для работы с векторной графикой, обеспечивая гибкость при построении сложных форм и их комбинировании.