Кубическая кривая Безье — это параметрическая кривая, которая определяется четырьмя точками управления: P₀, P₁, P₂, P₃. Она является расширением квадратичных кривых Безье и позволяет более гибко управлять формой траектории. Формула кубической кривой Безье записывается следующим образом:
[ B(t) = (1-t)^3 P_0 + 3(1-t)^2 t P_1 + 3(1-t) t^2 P_2 + t^3 P_3, t ]
где:
Кривая проходит через точки P₀ и P₃, а точки P₁ и P₂ влияют на направление и «натяжение» кривой, не находясь на самой траектории.
Линейность по контрольным точкам Любое изменение координат одной из контрольных точек изменяет кривую пропорционально. Это позволяет создавать динамические анимации с плавным переходом форм.
Инвариантность относительно преобразований Кривые Безье сохраняют форму при масштабировании, повороте или переносе всех точек управления.
Гладкость Кубическая кривая Безье имеет непрерывную первую и вторую производную. Это обеспечивает плавность анимаций без резких изломов.
Композиция кривых Несколько кубических кривых можно соединять в одну траекторию, обеспечивая непрерывность и гладкость. При этом важно согласовывать концы кривых, чтобы избежать скачков в скорости движения.
Для анализа движения вдоль кривой используется производная по параметру t:
[ B’(t) = 3(1-t)^2 (P_1 - P_0) + 6(1-t)t (P_2 - P_1) + 3 t^2 (P_3 - P_2)]
Свойства производной:
Вторая производная:
[ B’’(t) = 6(1-t)(P_2 - 2P_1 + P_0) + 6t (P_3 - 2P_2 + P_1)]
Используется для анализа кривизны, что позволяет управлять ускорением и замедлением объектов вдоль траектории.
В библиотеке AOS кубические кривые Безье используются для создания плавных переходов элементов при прокрутке страницы. В частности, при настройке параметра easing можно указать кастомную кривую:
AOS.init({
duration: 1200,
easing: 'cubic-bezier(0.25, 0.1, 0.25, 1.0)'
});
Пояснение параметров:
transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
transition-timing-function: cubic-bezier(0, 0, 0.58, 1);
transition-timing-function: cubic-bezier(0.42, 0, 1, 1);
Каждый из этих вариантов можно применять к элементам с анимацией при скролле через AOS, обеспечивая уникальные визуальные эффекты без дополнительного JavaScript.
Для настройки кривых удобно использовать онлайн-инструменты, такие как cubic-bezier.com, которые позволяют интерактивно изменять контрольные точки и сразу видеть результат. Это ускоряет подбор параметров анимации, особенно при сложных интерфейсах с множеством анимируемых элементов.
Кубические кривые Безье в сочетании с библиотекой AOS дают мощный инструмент для создания профессионально выглядящих скролл-анимаций с точным контролем траектории, ускорения и плавности движения.