Для начала работы с Paper.js необходимо подключить
библиотеку в проект. Обычно это делается через тег
<script> в HTML-файле:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.13.17/paper-full.min.js"></script>
После подключения можно привязать Paper.js к
<canvas> элементу. Существует два основных подхода:
через HTML-атрибут type="text/paperscript" и через
программное API на JavaScript.
<canvas id="myCanvas" resize></canvas>
<script type="text/paperscript" canvas="myCanvas">
var circle = new Path.Circle({
center: [100, 100],
radius: 50,
fillColor: 'red'
});
</script>
resize позволяет автоматически изменять размер
<canvas> при изменении размеров окна.canvas="myCanvas" связывает PaperScript с конкретным
элементом <canvas>.Path.Circle создаёт окружность с указанным центром,
радиусом и цветом заливки.Для более гибкого управления используется программный API:
var canvas = document.getElementById('myCanvas');
paper.setup(canvas);
var circle = new paper.Path.Circle({
center: new paper.Point(100, 100),
radius: 50,
fillColor: 'red'
});
paper.view.draw();
paper.setup(canvas) связывает Paper.js с элементом
<canvas>.paper.paper.view.draw() перерисовывает содержимое канвы после
добавления объектов.Paper.js использует слои для организации объектов на холсте. Каждый слой можно рассматривать как отдельный контейнер графических элементов.
var layer1 = new paper.Layer();
var rect = new paper.Path.Rectangle({
point: [50, 50],
size: [100, 100],
fillColor: 'blue'
});
layer1.addChild(rect);
var layer2 = new paper.Layer();
var circle = new paper.Path.Circle({
center: [150, 150],
radius: 50,
fillColor: 'green'
});
layer2.addChild(circle);
layer1.activate(); // Делает layer1 активным для последующих объектов
new paper.Layer() создаёт новый слой.addChild() добавляет объекты на слой.activate() переключает текущий активный
слой.Paper.js использует систему координат, где точка
(0, 0) находится в левом верхнем углу канвы. Можно
управлять координатной системой с помощью view.center и
view.zoom:
paper.view.center = new paper.Point(200, 200); // смещает центр канвы
paper.view.zoom = 2; // увеличивает масштаб в 2 раза
view.center позволяет перемещать центр системы
координат.view.zoom масштабирует все объекты на холсте.Paper.js можно инициализировать после полной загрузки DOM, чтобы
убедиться, что <canvas> доступен:
window.onl oad = function() {
var canvas = document.getElementById('myCanvas');
paper.setup(canvas);
var path = new paper.Path.Line({
from: [0, 0],
to: [200, 200],
strokeColor: 'black'
});
paper.view.draw();
};
Каждый экземпляр Paper.js создаёт объект PaperScope,
который изолирует контекст. Это важно при работе с несколькими канвасами
на одной странице:
var myScope = new paper.PaperScope();
myScope.setup(document.getElementById('canvas1'));
var circle = new myScope.Path.Circle({
center: [100, 100],
radius: 40,
fillColor: 'orange'
});
myScope.view.draw();
new PaperScope() создаёт независимый контекст
Paper.js.myScope.<canvas> или получить существующий.paper.setup(canvas) или
PaperScript.Path, PointText,
Raster и другие.Layer и активировать нужный
слой.paper.view.draw() для обновления холста.Эти методы и подходы создают основу для всех последующих действий в Paper.js, включая анимацию, обработку событий и сложные графические сцены.