我是paperjs的新手。我可以理解Shape.Rectangle和Path.Rectangle之间的区别。如果path.Rectangle创建一个带路径的矩形,那么这意味着什么,因为两种方法的输出是相同的
答案 0 :(得分:2)
Path
和Shape
是不同的类,具有不同的绘制方法,但输出类似。
但是,我注意到的差异在于缩放:Shape
s修改strokeWidth
,而Path
s保持不变
path = new Path.Rectangle([200, 100], [10, 100]);
path.strokeColor = 'black';
path.scale(10, 1);
shape = new Shape.Rectangle([200, 220], [10, 100]);
shape.strokeColor = 'red';
shape.scale(10, 1);
答案 1 :(得分:2)
您在缩放中看到这种差异的原因是item.applyMatrix
标志。在这两个链接中应该很好地解释它:
https://groups.google.com/forum/#!topic/paperjs/4EIRSGzcaUI http://paperjs.org/reference/item/#applymatrix
默认情况下,“路径”项直接将变换应用于其线段,因此笔划显示为均匀。
另一方面,形状项不能将转换传递给它们的内容,它们总是将它们存储在矩阵中(而shape.applyMatrix
总是false
)。
但是,使用item.strokeScaling
: