2

我是paperjs的新手。我不知道 Shape.Rectangle 和 Path.Rectangle 之间有什么区别。如果 path.Rectangle 创建一个带路径的矩形,那是什么意思,因为两种方法的输出是相同的

4

2 回答 2

2

Path并且Shape是不同的类,具有不同的绘制方法,但输出是相似的。
但是,我注意到的一个区别是缩放:Shapes modify strokeWidth,而Paths 保持不变

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);

在此处输入图像描述

于 2013-11-21T13:36:11.760 回答
2

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

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

默认情况下,路径项直接将变换应用到它们的段,因此笔画看起来是统一的。

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

但是您也可以使用统一的笔划渲染 Shape 项目,使用item.strokeScaling

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

于 2015-02-26T12:49:01.133 回答