В библиотеке Two.js каждый объект, будь то
примитивная фигура или группа элементов, имеет свойство
rotation, определяющее угол поворота в радианах. Значение
по умолчанию равно 0, что соответствует исходной ориентации
объекта. Поворот осуществляется относительно центра
объекта, который можно задать явно через свойства
translation.x и translation.y или через
встроенный центр фигуры.
const circle = two.makeCircle(0, 0, 50);
circle.rotation = Math.PI / 4; // Поворот на 45 градусов
В Two.js координаты задаются относительно осей X и Y холста. Для правильного вращения важно понимать:
Если требуется вращение вокруг другой точки, можно создать группу:
const group = two.makeGroup(circle);
group.translation.set(100, 100);
group.rotation = Math.PI / 2; // Поворот всей группы на 90 градусов
Two.js позволяет изменять свойство rotation в реальном
времени, что удобно для создания анимаций. Для плавного вращения можно
использовать метод bind и функцию обновления на каждом
кадре:
two.bind('upd ate', function(frameCount) {
circle.rotation += 0.02; // Постепенный поворот
}).play();
rotation увеличивается непрерывно, что
позволяет создавать бесконечные вращения.radians = degrees * Math.PI / 180.Для многоугольников или пользовательских форм поворот работает аналогично. Важно учитывать:
const rect1 = two.makeRectangle(0, 0, 60, 30);
const rect2 = two.makeRectangle(50, 50, 30, 60);
const group = two.makeGroup(rect1, rect2);
group.rotation = Math.PI / 3; // Поворот группы на 60 градусов
Rotation в Two.js является частью матрицы
трансформации объекта, которая также учитывает
scale и translation. Порядок применения
трансформаций:
scale)rotation)translation)Это важно при комбинировании нескольких эффектов. Неправильный порядок может привести к неожиданным результатам.
Для вращения относительно точки, отличной от центра, применяется комбинация смещения и вращения:
circle.translation.se t(150, 150);
circle.rotation = Math.PI / 4; // Вращение на 45 градусов
circle.translation.set(circle.translation.x + 50, circle.translation.y + 50); // Сдвиг центра вращения
Для более удобного контроля создаются группы, куда помещаются фигуры и задается центр группы.
Для сложных эффектов вращения часто используют внешние библиотеки, такие как GSAP:
gsap.to(circle, { rotation: Math.PI * 2, duration: 2, repeat: -1, ease: "linear" });
Это позволяет создавать непрерывные вращения с точной временной
шкалой, без необходимости вручную обновлять rotation на
каждом кадре.
translation) перед
применением rotation.rotation для
плавности.| Свойство | Описание |
|---|---|
rotation |
Угол поворота в радианах |
translation |
Положение центра объекта |
pivot |
Точка, вокруг которой выполняется поворот |
group |
Объединяет объекты для совместного вращения |
Эти инструменты позволяют создавать любые вращения — от простых анимаций до сложных механических систем и интерактивных визуализаций.