В Paper.js объект Point представляет
собой базовую структуру для работы с координатами в двумерном
пространстве. Он используется для хранения положения, смещения, размеров
и направлений. Каждая точка определяется двумя числовыми значениями:
x и y.
let p1 = new Point(100, 50);
console.log(p1.x); // 100
console.log(p1.y); // 50
Point не ограничивается только положением на холсте: с
его помощью выполняются операции над векторами, вычисления расстояний,
направления и масштабирования.
Способы инициализации точек:
let p = new Point(10, 20);
let p = new Point([10, 20]);
let p = new Point({x: 10, y: 20});
let p1 = new Point(5, 5);
let p2 = new Point(p1);
Все эти варианты создают идентичные объекты, что позволяет гибко использовать точки в различных сценариях.
let p = new Point(3, 4);
console.log(p.length); // 5
(0,0).Операции над точками:
let p1 = new Point(10, 20);
let p2 = new Point(5, 5);
let p3 = p1.add(p2); // Point {x: 15, y: 25}
let p3 = p1.subtract(p2); // Point {x: 5, y: 15}
let p4 = p1.multiply(2); // Point {x: 20, y: 40}
let p5 = p1.divide(2); // Point {x: 5, y: 10}
let p6 = p1.negate(); // Point {x: -10, y: -20}
let p = new Point(3, 4);
let normalized = p.normalize(); // Point {x: 0.6, y: 0.8}
let distance = p1.getDistance(p2); // 15.811...
let rotated = p1.rotate(90, new Point(0, 0));
let p = p1.interpolate(p2, 0.5); // точка посередине между p1 и p2
Объекты Point активно используются с Path,
Size, Rectangle и другими объектами:
let path = new Path();
path.add(new Point(10, 10));
path.add(new Point(50, 50));
let rect = new Rectangle(new Point(20, 20), new Size(100, 50));
console.log(rect.point); // Point {x: 20, y: 20}
Векторные операции:
Примеры вычислений:
let a = new Point(1, 2);
let b = new Point(3, 4);
console.log(a.dot(b)); // 11
console.log(a.cross(b)); // -2
console.log(a.isCollinear(b)); // false
console.log(a.isOrthogonal(new Point(-2, 1))); // true
let p = new Point(10.7, 20.3);
console.log(p.round()); // Point {x: 11, y: 20}
console.log(p.clone().toString()); // "Point { x: 10.7, y: 20.3 }"
Объект Point является фундаментом для построения
векторной графики в Paper.js. С его помощью:
Примеры использования в анимации:
let circle = new Path.Circle(new Point(50, 50), 20);
let velocity = new Point(2, 3);
function onFrame(event) {
circle.position = circle.position.add(velocity);
}
Этот код демонстрирует перемещение объекта по холсту с использованием
Point для хранения координат и скорости.
Point в Paper.js объединяет удобство работы с
координатами и мощные векторные функции, обеспечивая гибкость в создании
сложной графики и интерактивных визуализаций.