Я не думаю, что вы можете получить желаемый результат, используя Path.Line
.
Перфорирование подразумевает, что вы хотите удалить некоторую внутреннюю область, которой не хватает в открытом Path
, например Path.Line
.
Итак, вы можете сделать следующее:
- Замените эти толстые линии на
Path.Rectangle
с. unite
2 прямоугольника, чтобы получить свой крест, поэтому у вас есть один Path
для работы. - Используйте
subtract
вместо exclude
для "пробивания".
Вот пример:
var x = new paper.Path.Rectangle({
from: [100, 100],
to: [120, 200],
fillColor: 'red',
strokeWidth: 1
});
var y = x.clone().rotate(90).set({ fillColor: 'blue' })
// Unite x/y to get a single path.
var cross = y.unite(x)
// Remove x,y we no longer need them, we got the cross.
x.remove()
y.remove()
var hole = new paper.Path.Circle({
center:[110, 150],
radius: 6,
strokeColor: 'red',
fillColor: 'red'
})
// Subtract (instead of exclude), to "punch through".
var drilled = cross.subtract(hole)
// Remove hole/cross, we no longer need them.
hole.remove()
cross.remove()
console.log(drilled)
и вот Эскиз .
Если вы не хотите unite
ваших фигур, вы все равно можете пройти через них и subtract
отверстие от них,просто не забудьте использовать закрытый Path
с.