разница между shape.rectangle и path.rectangle в paperjs

Я новичок в paperjs. Я не могу понять, в чем разница между Shape.Rectangle и Path.Rectangle. Если path.Rectangle создает прямоугольник с путем, то что это значит, поскольку вывод обоих методов одинаков


person Saima    schedule 26.10.2013    source источник


Ответы (2)


Path и Shape — это разные классы с разными методами рисования, но результат будет одинаковым.
Однако я заметил разницу в масштабировании: Shape изменяет strokeWidth, а Path оставляет без изменений.

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

введите здесь описание изображения

person zaboco    schedule 21.11.2013

Причина, по которой вы видите эту разницу в масштабировании, связана с флагом item.applyMatrix. Это должно быть довольно хорошо объяснено в этих двух ссылках:

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

По умолчанию элементы Path применяют преобразования непосредственно к своим сегментам, поэтому штрих выглядит однородным.

Элементы формы, с другой стороны, не могут передать преобразование своему содержимому, они всегда сохраняют их в матрице (и shape.applyMatrix всегда false).

Но вы также можете визуализировать элементы Shape с однородным штрихом, используя item.strokeScaling:

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

person Jürg Lehni    schedule 26.02.2015