Two.js поддерживает модульную систему расширений через плагины, которые добавляют новые возможности к основным объектам библиотеки, таким как сцена, фигуры, материалы и анимации. Плагины могут быть как встроенными, так и сторонними. Основные шаги работы с плагинами включают:
Инициализация плагина: Для подключения
стороннего плагина необходимо сначала импортировать его в проект, а
затем зарегистрировать через метод
Two.Plugin.register(pluginName, pluginObject). Пример:
import SomePlugin from './twojs-some-plugin.js';
Two.Plugin.register('somePlugin', SomePlugin);Использование плагина на сцене или объекте: После регистрации плагина его методы становятся доступными через экземпляр Two.js или конкретные фигуры. Например:
const two = new Two({ width: 800, height: 600 }).appendTo(document.body);
two.somePlugin.initialize();Создание собственных плагинов: Плагин в Two.js
представляет собой объект с обязательным методом
initialize, который вызывается при добавлении плагина к
сцене, и дополнительными методами для обработки объектов:
const CustomPlugin = {
initialize: function(two) {
this.two = two;
console.log('Плагин инициализирован');
},
highlightShape: function(shape) {
shape.fill = '#FF0000';
}
};
Two.Plugin.register('customPlugin', CustomPlugin);Two.js предоставляет набор встроенных утилит, упрощающих работу с векторами, координатами и трансформациями. Ключевые из них:
Two.Utils.clamp(value, min, max) Ограничивает числовое значение между заданными пределами:
let clamped = Two.Utils.clamp(120, 0, 100); // 100Two.Utils.toFixed(number, precision) Округляет число до заданного количества знаков после запятой:
let rounded = Two.Utils.toFixed(3.14159, 2); // 3.14Two.Utils.getRatio(number, min, max) Возвращает отношение числа к диапазону:
let ratio = Two.Utils.getRatio(75, 0, 100); // 0.75Two.Utils.mod(n, m) Безопасное вычисление остатка с поддержкой отрицательных чисел:
let remainder = Two.Utils.mod(-1, 5); // 4Эти утилиты особенно полезны при создании анимаций, привязке объектов к сетке или вычислении динамических координат.
Two.js имеет собственный объект Two.Utils.Color, который
упрощает управление цветами и их конвертацию:
Создание цвета:
const color = new Two.Utils.Color('#3498db');Методы цвета:
color.toHex() — возвращает цвет в формате
#RRGGBB.color.toRgb() — возвращает массив
[r, g, b] в диапазоне 0–255.color.lerp(targetColor, amount) — плавная интерполяция
между текущим и целевым цветом.const startColor = new Two.Utils.Color('#ff0000');
const endColor = new Two.Utils.Color('#0000ff');
startColor.lerp(endColor, 0.5); // Возвращает промежуточный фиолетовый цветTwo.js предоставляет функции для упрощения трансформаций объектов и управления анимацией:
Трансформации:
shape.translation.set(x, y) — перемещение фигуры.shape.rotation = angle — вращение в радианах.shape.scale = scalar — масштабирование фигуры.shape.center() — центрирование фигуры относительно
сцены.Анимации: Two.js использует цикл
two.update() для обновления сцены. Утилиты анимации
включают:
Пример использования линейной интерполяции для движения:
let x = Two.Interpolate.linear(0, 400, 0.25); // x = 100
shape.translation.set(x, 200);Для работы с кривыми, линиями и полигонами предоставляются специализированные методы:
Эти утилиты упрощают построение сложных форм и взаимодействие объектов друг с другом.
Two.js позволяет использовать внешние утилиты для расширенного функционала, например:
SAT.js или Matter.js.Vector2 из
three.js или p5.js.GSAP.Плагины и утилиты Two.js обеспечивают гибкость и масштабируемость, позволяя создавать интерактивные 2D-сцены с высокой точностью и плавной анимацией.