В библиотеке mo.js визуальные элементы анимации строятся вокруг
модуля Shape. Он представляет собой универсальную сущность,
способную рендерить различные геометрические формы и управлять их
анимационными свойствами. Встроенные типы фигур задаются через параметр
shape, который определяет базовую геометрию объекта.
Конструкция Shape включает несколько уровней абстракции: геометрия, стилизация, анимационные трансформации. Каждая фигура наследует общий набор свойств, но отличается внутренней реализацией пути (path) и поведением при трансформации.
Круг является наиболее базовой и часто используемой формой. Он
задаётся значением shape: 'circle' и представляет собой
окружность с равномерной геометрией без углов и рёбер.
Ключевые особенности:
Типичные параметры:
radius — определяет размер окружностиstroke и strokeWidth — управление
контуромfill — заливкаПоведение при анимации:
Прямоугольная форма задаётся через shape: 'rect'.
Представляет собой геометрию с четырьмя прямыми углами и независимыми
осями ширины и высоты.
Особенности:
Параметры:
rx, ry — скругление угловwidth, height — размеры фигурыangle — поворот в градусахПоведение:
Многоугольник (shape: 'polygon') представляет собой
замкнутую фигуру с заданным количеством сторон. Чаще всего используется
для создания треугольников, пятиугольников и более сложных симметричных
форм.
Основные характеристики:
points задаёт количество вершинКлючевые параметры:
points — число сторон (например, 3, 5, 6, 8)radius — радиус описанной окружностиПоведение:
Фигура shape: 'star' строится на чередовании внешних и
внутренних радиусов, создавая лучевую структуру.
Особенности:
Параметры:
points — количество лучейinnerRadius — внутренний радиусouterRadius — внешний радиусПоведение:
Формы curve и zigzag относятся к
декоративным линиям, основанным на сегментированных или волнообразных
путях.
Кривая форма представляет собой плавную линию с изменяемой траекторией изгиба. Используется для мягких переходов и органических эффектов.
Характеристики:
Зигзаг формируется чередованием направлений линий, создавая резкую геометрическую структуру.
Особенности:
Эти формы представляют собой символические геометрические конструкции.
shape: 'cross' формирует пересекающиеся линии под прямым
углом.
Особенности:
shape: 'equal' состоит из двух параллельных линий.
Характеристики:
Фигура сердца строится на основе кривых Безье, формирующих узнаваемый силуэт.
Особенности:
Поведение:
Все встроенные формы mo.js наследуют единый набор управляющих свойств, определяющих их визуальное поведение.
radius — базовый размерx, y — позиционированиеangle — поворотfill — цвет заливкиstroke — цвет обводкиstrokeWidth — толщина линииopacity — прозрачностьduration — длительность анимацииdelay — задержка стартаeasing — функция плавностиВстроенные фигуры активно используются внутри модуля
Burst, который генерирует группы анимационных элементов.
Каждая частица может использовать любой тип shape, что позволяет
создавать сложные визуальные композиции.
Примеры поведения:
При комбинировании форм возникает многослойная структура визуального шума, где разные геометрии отвечают за разные уровни восприятия: фоновые, акцентные и пиксельные элементы.
Встроенные фигуры реагируют на стандартные трансформации SVG/Canvas-уровня, включая масштабирование и вращение. Однако каждая геометрия имеет собственные особенности деформации:
Выбор встроенной фигуры определяет характер анимационного эффекта. Геометрическая простота приводит к чистым и минималистичным анимациям, тогда как сложные формы создают визуально насыщенные сцены.