В Paper.js объекты Point представляют собой
двумерные векторы с координатами x и y. Они
используются для позиционирования элементов на холсте, вычислений
векторной математики и работы с геометрическими операциями. Создание
объекта Point может осуществляться несколькими способами:
// Через координаты x и y
let p1 = new Point(100, 50);
// Через массив [x, y]
let p2 = new Point([200, 75]);
// Через объект с полями x и y
let p3 = new Point({ x: 50, y: 150 });
Point поддерживает арифметические операции как для работы с числами, так и для других точек.
let p4 = p1.add(new Point(10, 20)); // {x: 110, y: 70}
let p5 = p2.subtract(p1); // {x: 100, y: 25}
let p6 = p1.multiply(2); // {x: 200, y: 100}
let p7 = p1.divide(2); // {x: 50, y: 25}
Point предоставляет методы для работы с длиной, углом и расстоянием между точками:
let length = p1.length; // sqrt(x^2 + y^2)
let distance = p1.getDistance(p2);
let unit = p1.normalize(1); // длина 1
let angle = p1.angle;
p1.angle = 45;
Point позволяет работать с направлениями, проекциями и перпендикулярными векторами:
let center = new Point(0, 0);
let rotated = p1.rotate(90, center);
let projected = p1.project(p2);
let crossValue = p1.cross(p2);
let dotValue = p1.dot(p2);
Point поддерживает плавные переходы и интерполяцию между точками:
let middle = p1.interpolate(p2, 0.5); // середина между p1 и p2
let lerpPoint = p1.lerp(p2, 0.3);
let close = p1.isClose(p2, 0.01);
Point предоставляет методы для смещения, округления и получения новых координат:
let rounded = p1.round(); // {x: 100, y: 50}
let floored = p1.floor(); // {x: 100, y: 50}
let ceiled = p1.ceil(); // {x: 100, y: 50}
let absPoint = p1.abs();
let negated = p1.negate(); // {x: -100, y: -50}
Объекты Point широко используются для:
Методы Point позволяют писать компактный, но мощный код, комбинируя арифметические операции с векторными преобразованиями и интерполяцией, что делает Paper.js эффективным инструментом для сложной графики и интерактивных визуализаций.