Численные значения

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

Простые числовые литералы

Базовый формат задания параметров представляет собой обычное число. Оно используется напрямую без преобразований и интерпретируется как фиксированное значение на протяжении всей анимации.

К таким параметрам относятся:

  • длительность анимации
  • начальные и конечные координаты
  • радиусы фигур
  • углы поворота
  • масштабирование

Фиксированные числа обеспечивают детерминированное поведение, при котором результат полностью предсказуем и воспроизводим.

Числа со строковыми единицами

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

  • px для пикселей
  • % для относительных значений
  • deg для углов
  • rad для радианов

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

Диапазоны значений

Распространённый способ задания изменяющихся параметров — использование диапазона в виде объекта с двумя границами:

{ 0: 100 }

Такой формат задаёт интерполяцию между начальным и конечным значением. Внутренний механизм mo.js преобразует диапазон в функцию изменения значения во времени.

Диапазоны применяются для:

  • смещения объектов
  • изменения прозрачности
  • масштабирования
  • изменения скорости движения

Интерполяция осуществляется линейно или с применением кривых сглаживания.

Интерполяция и числовая трансформация

Числовая интерполяция в mo.js основана на вычислении промежуточных значений между ключевыми точками. Базовая формула линейной интерполяции:

y = (1 - t)a + tb

где:

  • a — начальное значение
  • b — конечное значение
  • t — нормализованное время (от 0 до 1)

При применении easing-функций параметр t проходит нелинейное преобразование, что изменяет характер движения: ускорение, замедление или колебания.

Временные числовые параметры

Длительность

Длительность анимации задаётся числом в миллисекундах. Это один из ключевых параметров таймлайна, влияющий на синхронизацию всех вложенных анимаций.

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

Задержка

Параметр задержки определяет смещение начала анимации относительно стартового момента. Числовая модель задержки используется для создания каскадных эффектов и последовательных запусков.

Геометрические числовые параметры

Координаты

Положение объектов описывается числовыми значениями по осям X и Y. Эти параметры могут задаваться как абсолютными числами, так и диапазонами.

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

Радиусы и размеры

Радиус окружностей, размеры фигур и толщины линий задаются числовыми значениями. Эти параметры активно участвуют в анимациях burst-эффектов, где геометрия изменяется экспоненциально или линейно.

Физические числовые модели

mo.js поддерживает поведенческие модели, основанные на физике пружин и демпфирования. В таких системах числа определяют:

  • жёсткость пружины
  • коэффициент трения
  • массу объекта
  • амплитуду колебаний

Поведение системы описывается дифференциальными зависимостями, в которых числовые параметры определяют характер движения.

Случайные числовые значения

Числовые параметры могут быть заданы как случайные диапазоны. В этом случае значение вычисляется при каждом запуске анимации, что создаёт вариативность поведения.

Применяются следующие подходы:

  • выбор случайного значения внутри диапазона
  • генерация псевдослучайных последовательностей
  • стохастическое распределение параметров

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

Функциональные числовые значения

Вместо фиксированного числа может использоваться функция, возвращающая значение в зависимости от времени или других параметров анимации.

Функциональные значения позволяют:

  • синхронизировать свойства объектов
  • создавать зависимые анимации
  • изменять поведение в реальном времени

Функция получает входные параметры контекста анимации и возвращает вычисленное числовое значение, которое используется на текущем кадре.

Статические и динамические числовые модели

Статические значения остаются неизменными на протяжении всей анимации. Динамические значения изменяются во времени через интерполяцию, функции или физические модели.

Разделение моделей позволяет оптимизировать вычисления:

  • статические параметры кэшируются
  • динамические пересчитываются на каждом кадре

Нормализация числовых значений

Перед использованием все числовые параметры проходят этап нормализации. Он включает:

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

Нормализация обеспечивает единообразие внутреннего представления данных, независимо от входного формата.

Влияние числовой точности

Точность числовых вычислений влияет на плавность анимации. Ошибки округления могут приводить к:

  • дрожанию объектов
  • неточным траекториям
  • нарушению синхронизации слоёв

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

Числовые последовательности и таймлайны

В сложных сценах числовые значения объединяются в последовательности, формируя таймлайны. Каждый этап таймлайна представляет собой набор числовых параметров, активируемых в определённый момент времени.

Такая структура позволяет:

  • синхронизировать множественные анимации
  • создавать каскадные эффекты
  • управлять группами объектов через единые числовые модели