Paperjs布尔联合和减法(联合和减法)

时间:2014-06-03 23:46:30

标签: boolean-operations paperjs subtraction

试图理解联合和减去方法如何在paperjs(paper.js)中起作用。

var postyle = { fillColor:'grey', strokeColor: 'black'}

var p1 = Path.Circle({
        center: new Point(80, 50),
        radius: 50
    })
var p2 = Path.Circle({
        center: new Point(200, 50),
        radius: 50
    })

var p3 = Path.Circle({
        center: new Point(120, 60),
        radius: 50
    })
var p4 = Path.Circle({
        center: new Point(190, 60),
        radius: 15
    })
var p5 = Path.Circle({
        center: new Point(50, 60),
        radius: 10
    })
var p6 = Path.Circle({
        center: new Point(80, 40),
        radius: 10
    })

var pos=p1.unite(p2)
var neg=p3.unite(p4)

var boolp=pos.subtract(neg)

var path = boolp//.unite(p5)//.unite(p6)

path.style=postyle

您可以在http://sketch.paperjs.org

中试用

它的工作原理如下,但如果您取消注释.unite(p5),则p5圆圈不与其他圆圈(月球左四分之一圆圈)结合。

如果您取消注释.unite(p6),则p5现在减去“联合”而不是“联合”。 p6很好地结合了。

如果你将p6改为Point(60,40),那么p5就可以很好地结合,而p6则有联合问题。

出了什么问题?

THX

1 个答案:

答案 0 :(得分:0)

这个问题正在解释其答案本身。 由于具有较小路径的路径的联合完全沉浸在父路径中将导致父路径本身。 如果您更改较小圆圈的x位置,则表明联合正确,请参考sketch.paper.js