В Paper.js обводка фигур реализуется через свойство
strokeColor, а ширина линии задаётся через
strokeWidth. Обводка используется для выделения
контуров объектов, таких как Path, Rectangle,
Circle или CompoundPath. Обводка может быть
одноцветной, градиентной, с прозрачностью и различными стилями концов и
соединений.
var circle = new Path.Circle({
center: [150, 150],
radius: 50,
strokeColor: 'red', // цвет обводки
strokeWidth: 5 // толщина линии
});
strokeColor — задаёт цвет линии. Может быть
строкой цвета ('red', 'blue') или объектом
Color.
strokeWidth — определяет толщину линии в пикселях.
strokeCap — стиль окончания линии. Возможные значения:
'butt' — линия заканчивается точно на конце
сегмента.'round' — линия оканчивается полукругом.'square' — линия оканчивается квадратом, выступая за
конец сегмента на половину толщины линии.strokeJoin — стиль соединения сегментов:
'miter' — острый угол (по умолчанию).'round' — скруглённый угол.'bevel' — срезанный угол.dashArray — массив чисел, определяющий штриховой рисунок линии.
dashOffset — смещение для штриховой линии.
var line = new Path.Line({
from: [50, 50],
to: [200, 50],
strokeColor: 'blue',
strokeWidth: 8,
strokeCap: 'round',
strokeJoin: 'round',
dashArray: [10, 4] // чередование длины линии и пропуска
});
Обводку можно сделать полупрозрачной с помощью альфа-канала:
var rectangle = new Path.Rectangle({
point: [100, 100],
size: [150, 100],
strokeColor: new Color(0, 1, 0, 0.5), // зелёная с прозрачностью 50%
strokeWidth: 6
});
Градиентная обводка создаётся через объект Gradient и
GradientStop:
var gradient = new Gradient(['red', 'yellow']);
var path = new Path.Circle({
center: [300, 200],
radius: 60,
strokeColor: gradient,
strokeWidth: 10
});
Объекты Paper.js позволяют динамически изменять свойства обводки:
circle.strokeColor = 'blue';
circle.strokeWidth = 12;
circle.strokeCap = 'square';
Можно комбинировать с анимацией, например, изменяя
strokeWidth плавно:
function onFrame(event) {
circle.strokeWidth = 5 + Math.sin(event.time * 3) * 3;
}
Свойство dashArray позволяет создавать сложные штриховые линии. Элементы массива чередуются: длина линии и длина пропуска.
var zigzag = new Path();
zigzag.add([50, 300]);
zigzag.add([200, 300]);
zigzag.strokeColor = 'purple';
zigzag.strokeWidth = 4;
zigzag.dashArray = [15, 5, 5, 5]; // комбинированный рисунок
dashOffset позволяет смещать начальную точку штрихов, создавая эффект движения:
function onFrame(event) {
zigzag.dashOffset -= 2;
}
miter) могут
быть обрезаны, если длина “mitre limit” слишком мала. В Paper.js это
регулируется свойством miterLimit.round) делают углы более
плавными, особенно при анимации.bevel) полезны для создания
графических схем с угловатыми линиями.var triangle = new Path.RegularPolygon({
center: [400, 100],
sides: 3,
radius: 60,
strokeColor: 'black',
strokeWidth: 8,
strokeJoin: 'bevel'
});
Объединение нескольких фигур в один объект CompoundPath
позволяет применить общую обводку ко всем сегментам:
var compound = new CompoundPath({
children: [
new Path.Circle({ center: [100, 400], radius: 30 }),
new Path.Rectangle({ point: [130, 370], size: [60, 60] })
],
strokeColor: 'orange',
strokeWidth: 5
});
Обводка при этом ведёт себя как единое целое, что важно для сложных графических элементов.
strokeWidth 1–3px, для
выделенной линии — 5–10px.round) лучше подходят для плавных
кривых.dashArray отлично подходят для
динамических эффектов или диаграмм.Обводка в Paper.js является мощным инструментом для управления визуальной выразительностью фигур. Сочетание толщины, цвета, стиля концов и соединений позволяет создавать как минималистичные схемы, так и сложные художественные композиции.