Базовая геометрия анимаций в mo.js опирается на две ключевые величины: радиус и угол поворота. Эти параметры определяют траекторию движения частиц, форму взрывов (burst-анимаций), распределение элементов по окружности и визуальную динамику композиции.
Радиус определяет расстояние, на которое элементы анимации распространяются от центра события. В контексте burst-эффектов это одна из основных характеристик, формирующих визуальную структуру анимации.
В простейшей форме радиус задаёт максимальное удаление частиц:
const burst = new mojs.Burst({
radius: { 0: 120 },
count: 10,
children: {
shape: 'circle',
radius: 5
}
});
Здесь radius: { 0: 120 } означает, что анимация
начинается с нулевого радиуса и расширяется до 120 пикселей.
Ключевые моменты поведения:
mo.js поддерживает tween-анимацию значений, что позволяет создавать динамическое расширение:
radius: { 20: 180 }
Такой подход используется для:
Чем больше радиус при фиксированном количестве элементов, тем более разреженной становится композиция.
При этом:
count компенсирует рост радиусаУгол определяет начальную ориентацию системы координат и влияет на то, как элементы распределяются по окружности.
В burst-анимациях угол задаёт стартовую точку распределения частиц:
const burst = new mojs.Burst({
radius: { 0: 100 },
angle: 45,
count: 8,
children: {
shape: 'line',
radius: { 10: 0 }
}
});
Значение angle: 45 смещает начальную точку распределения
на 45 градусов относительно оси X.
Таким образом, угол задаёт базовую ориентацию системы координат burst-эффекта.
Радиус и угол работают совместно, формируя полярную систему координат.
Каждая частица вычисляет своё положение как:
mo.js автоматически распределяет частицы по окружности:
const burst = new mojs.Burst({
radius: { 0: 150 },
count: 12,
angle: 0,
children: {
radius: { 6: 0 }
}
});
В этом случае угол между элементами равен:
360° / count = 30°
Каждый элемент получает свой сектор окружности.
Радиус в mo.js не ограничивается статическим значением. Он может управлять:
radius: { 0: 200, easing: 'cubic.out' }
Использование easing-функций изменяет характер движения:
Кроме общего угла burst, каждый child-элемент может иметь собственный поворот.
children: {
shape: 'rect',
rotate: { 0: 180 },
radius: { 10: 0 }
}
Здесь:
При создании сложных анимаций радиус часто комбинируется с вращением:
children: {
shape: 'circle',
radius: { 8: 0 },
rotate: { 0: 360 }
}
Это создаёт эффект:
В более сложных сценах радиус используется не только как геометрический параметр, но и как средство построения композиции.
const burst1 = new mojs.Burst({
radius: { 0: 80 },
count: 6
});
const burst2 = new mojs.Burst({
radius: { 0: 140 },
count: 10
});
Такая комбинация создаёт:
При добавлении смещения центр системы координат меняется, и угол начинает работать относительно новой точки.
const burst = new mojs.Burst({
x: 200,
y: 100,
radius: { 0: 120 },
angle: 90
});
Изменение центра:
mo.js позволяет задавать неравномерные радиусы:
radiusX: { 0: 150 },
radiusY: { 0: 60 }
Такое поведение формирует:
Угол в этом случае становится критически важным, так как определяет ориентацию эллипса.
При использовании stagger распределение времени запуска влияет на восприятие радиуса:
const burst = new mojs.Burst({
radius: { 0: 120 },
count: 20,
children: {
delay: 'stagger(50)'
}
});
Эффекты:
Хотя burst-анимации основаны на радиальном распространении, радиус может сочетаться с path-анимациями:
const shape = new mojs.Shape({
shape: 'circle',
path: 'M0,0 C50,100 150,100 200,0',
radius: 10
});
Здесь радиус уже выполняет вспомогательную роль:
При использовании timeline угол может изменяться синхронно с другими параметрами:
const timeline = new mojs.Timeline();
timeline.add(
new mojs.Burst({
radius: { 0: 100 },
angle: { 0: 360 },
count: 12
})
);
Это создаёт:
Совместная работа радиуса и угла фактически формирует полярную систему координат:
Каждая частица в burst-анимации — это результат преобразования:
radius: { 0: 150 },
angle: 0,
count: 16
Используется для:
radius: { 0: 120 },
angle: { 0: 360 }
Используется для:
radiusX: { 0: 160 },
radiusY: { 0: 60 },
angle: 30
Используется для:
При значительном увеличении радиуса:
При малых значениях:
В сложных сценах:
Угол в таких системах определяет: