Радиус и скругление углов

В mo.js геометрия анимаций строится вокруг параметров форм: кругов, прямоугольников, полигонов и составных эффектов. Одними из ключевых характеристик, определяющих визуальное поведение объектов, являются радиус и скругление углов. Эти параметры влияют не только на внешний вид фигуры, но и на динамику её трансформации при анимации.


В контексте mo.js радиус определяет размер окружности или базовый масштаб радиально симметричных объектов. Для кругов и всплесков (burst-анимаций) он становится основным контролирующим параметром, задающим расстояние от центра до границы фигуры.

В простейшем случае круг описывается через radius:

const circle = new mojs.Shape({
  shape: 'circle',
  radius: 50,
  fill: 'none',
  stroke: '#4A90E2',
  strokeWidth: 8
});

Здесь радиус 50 задаёт фиксированную геометрию объекта. Однако сила mo.js заключается в возможности анимировать этот параметр, превращая статическую окружность в динамически изменяющуюся форму.


Анимация изменения радиуса

Радиус в mo.js может быть анимирован так же, как и любые другие числовые параметры. Это позволяет создавать эффекты расширения, пульсации и “взрывного” появления формы.

const circle = new mojs.Shape({
  shape: 'circle',
  radius: { 0: 60 },
  duration: 800,
  easing: 'ease.out'
});

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

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


Радиус как основа Burst-эффектов

В burst-анимациях радиус становится параметром, определяющим радиальное распределение частиц или элементов.

const burst = new mojs.Burst({
  radius: { 0: 120 },
  count: 8,
  children: {
    shape: 'circle',
    radius: 10,
    fill: '#FF4D4D'
  }
});

Здесь внешний радиус управляет зоной распространения элементов. При анимации от 0 до 120 создаётся эффект расширяющегося импульса.

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


Скругление углов в прямоугольных формах

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

const rect = new mojs.Shape({
  shape: 'rect',
  width: 100,
  height: 60,
  radius: 10,
  fill: '#2ECC71'
});

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


Анимация скругления углов

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

const rect = new mojs.Shape({
  shape: 'rect',
  width: 120,
  height: 60,
  radius: { 0: 30 },
  duration: 600,
  easing: 'cubic.out'
});

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


Влияние скругления на восприятие анимации

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

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


Комбинация радиуса и трансформаций

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

const shape = new mojs.Shape({
  shape: 'circle',
  radius: { 10: 80 },
  scale: { 1: 1.5 },
  opacity: { 1: 0 },
  duration: 900,
  easing: 'expo.out'
});

Здесь радиус формирует расширение объекта, масштаб усиливает визуальный рост, а прозрачность завершает эффект исчезновения.


Радиус в сложных композициях

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

const outer = new mojs.Shape({
  shape: 'circle',
  radius: { 20: 100 },
  stroke: '#000',
  fill: 'none',
  duration: 1000
});

const inner = new mojs.Shape({
  shape: 'circle',
  radius: { 10: 60 },
  fill: '#000',
  duration: 700
});

Разная скорость изменения радиуса создаёт многослойную динамику, усиливающую глубину анимации.


Геометрическая интерпретация радиуса в mo.js

Радиус в mo.js не является просто числовым параметром. Он выступает как геометрический контроллер, влияющий на:

  • размер объекта;
  • траекторию распределения элементов;
  • плотность композиции;
  • визуальный центр внимания.

Изменение радиуса автоматически перестраивает внутреннюю систему координат анимации, особенно в burst- и shape-компонентах.


Скругление как инструмент морфинга форм

При последовательной анимации значений radius можно создавать эффект морфинга между геометрическими состояниями:

  • квадрат → скруглённый квадрат → круг
  • тонкая линия → толстая капсула → окружность
const morph = new mojs.Shape({
  shape: 'rect',
  width: 80,
  height: 80,
  radius: { 0: 40 },
  duration: 1000,
  easing: 'sin.inout'
});

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


Радиус в контексте визуального ритма

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

const pulse = new mojs.Shape({
  shape: 'circle',
  radius: { 20: 40 },
  isYoyo: true,
  repeat: 5,
  duration: 400
});

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


Связь радиуса с центром трансформации

Все изменения радиуса в mo.js происходят относительно центра объекта. Это означает, что расширение или скругление не смещает фигуру, а изменяет её симметрично относительно центральной точки.

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


Радиус как элемент композиционного контроля

При создании сложных анимационных сцен радиус используется для управления плотностью визуальных элементов. Большой радиус увеличивает “воздух” в композиции, тогда как малый — концентрирует внимание в центре.

В burst-анимациях это особенно заметно: увеличение радиуса приводит к более широкому распределению частиц, изменяя восприятие энергии и интенсивности эффекта.