paperjs中shape.rectangle和path.rectangle之间的区别

时间:2013-10-26 22:00:49

标签: paperjs

我是paperjs的新手。我可以理解Shape.Rectangle和Path.Rectangle之间的区别。如果path.Rectangle创建一个带路径的矩形,那么这意味着什么,因为两种方法的输出是相同的

2 个答案:

答案 0 :(得分:2)

PathShape是不同的类,具有不同的绘制方法,但输出类似。
但是,我注意到的差异在于缩放: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);

enter image description here

答案 1 :(得分:2)

您在缩放中看到这种差异的原因是item.applyMatrix标志。在这两个链接中应该很好地解释它:

https://groups.google.com/forum/#!topic/paperjs/4EIRSGzcaUI http://paperjs.org/reference/item/#applymatrix

默认情况下,“路径”项直接将变换应用于其线段,因此笔划显示为均匀。

另一方面,形状项不能将转换传递给它们的内容,它们总是将它们存储在矩阵中(而shape.applyMatrix总是false)。

但是,使用item.strokeScaling

,您也可以使用统一笔划渲染Shape项目

http://paperjs.org/reference/item/#strokescaling