Параметры спирали

Спиральная анимация в mo.js формируется через набор параметров, управляющих геометрией кривой, плотностью витков, направлением движения и визуальными свойствами линии. Модуль спирали базируется на полярной системе координат, где каждая точка определяется радиусом и углом, изменяющимися во времени.

Радиус и динамика расширения

radius определяет базовый размер спирали и задаёт расстояние от центра до внешней границы траектории. Значение может быть фиксированным или изменяться в процессе анимации.

При использовании массива значений задаётся интерполяция:

radius: [0, 120]

В этом случае траектория начинается в центре и постепенно расширяется до указанного предела. Поведение интерполяции зависит от easing-функции, которая управляет характером роста — линейным, ускоренным или замедленным.

Дополнительно может использоваться разделение по осям:

  • radiusX — горизонтальный радиус
  • radiusY — вертикальный радиус

Асимметрия радиусов приводит к эллиптической деформации спирали.

Количество витков

turns определяет число полных оборотов вокруг центра. Этот параметр напрямую влияет на плотность структуры:

turns: 3

При увеличении значения возрастает частота пересечений траектории, формируя более сложную геометрию. Дробные значения позволяют создавать неполные витки, что используется для создания эффектов затухания или незавершённости движения.

Угловая эволюция

angle задаёт начальное смещение вращения. В комбинации с turns формируется итоговая ориентация всей спирали.

angle: 90

Изменение угла влияет на:

  • начальную точку построения
  • ориентацию витков относительно осей координат
  • визуальное распределение плотности

При анимации angle может быть задан как функция времени, создавая эффект вращающейся системы координат.

Направление вращения

direction управляет направлением развёртывания:

  • 1 — по часовой стрелке
  • -1 — против часовой стрелки

При инверсии направления изменяется знак углового приращения, что приводит к зеркальному поведению всей траектории без изменения геометрии базовой формы.

Смещение центра

x и y задают положение центра спирали в системе координат. Значения могут быть числовыми или процентными:

x: '50%',
y: '50%'

При использовании процентов центр привязывается к размерам контейнера, что позволяет масштабировать сцену без перерасчёта абсолютных координат.

Толщина и визуальные свойства линии

strokeWidth определяет толщину линии спирали. Этот параметр влияет на визуальную плотность и читаемость формы при наложении нескольких витков.

Дополнительные свойства визуализации:

  • stroke — цвет линии
  • opacity — прозрачность
  • strokeLinecap — форма концов линии (round, square, butt)

Комбинация этих параметров формирует характер графического стиля спирали.

Временные параметры и скорость построения

duration задаёт время полной анимации. В контексте спирали это период развёртывания всей кривой:

duration: 2000

Скорость визуального построения определяется отношением длины траектории к времени анимации. При увеличении turns общая длина возрастает, что визуально замедляет движение при фиксированном duration.

Функции интерполяции

Easing-функции влияют на распределение точек вдоль спирали. Наиболее значимые эффекты:

  • линейное распределение создаёт равномерные витки
  • ease-out формирует плотное начало и разрежённый конец
  • ease-in создаёт обратную структуру

Использование пользовательских функций позволяет управлять локальной плотностью витков, изменяя кривизну без изменения геометрических параметров.

Масштабирование и трансформация

Параметр scale управляет общим размером спирали без изменения радиуса:

scale: 1.5

При анимации scale может изменяться динамически, создавая эффект расширения или сжатия уже построенной траектории.

Параметризация через функции

Все основные параметры могут быть представлены функциями, зависящими от времени или индекса:

radius: function(t) {
  return 120 * t;
}

Такой подход позволяет формировать нелинейные структуры, где геометрия спирали изменяется в процессе построения.

Комбинированное влияние параметров

Изменение turns без корректировки radius приводит к изменению плотности витков без изменения внешнего диаметра. Изменение angle при фиксированном turns создаёт эффект фазового смещения. Взаимодействие direction и easing определяет визуальное направление энергетического потока анимации.

При одновременной модификации radius, turns и duration формируется полный контроль над:

  • геометрией траектории
  • временной структурой построения
  • визуальной насыщенностью формы