Открыть сервис

Кривые Безье

Кривая Безье — это параметрическая кривая, задаваемая набором опорных (контрольных) точек, математически описываемая с помощью полиномов Бернштейна. Кривые Безье являются фундаментальным инструментом в компьютерной графике, системах автоматизированного проектирования (САПР), шрифтовых технологиях и робототехнике благодаря своей способности создавать гладкие, интуитивно управляемые формы при минимальном объёме данных.

Определение и математическое описание

Кривая Безье степени \( n \) задаётся \( n+1 \) контрольной точкой \( P_0, P_1, \dots, P_n \). Параметрическое уравнение кривой имеет вид:

\[ B(t) = \sum_{i=0}^{n} \binom{n}{i} t^i (1-t)^{n-i} P_i, \quad t \in [0, 1] \]

где \( \binom{n}{i} \) — биномиальный коэффициент, а \( t \) — параметр, изменяющийся от 0 до 1. При \( t=0 \) кривая проходит через первую контрольную точку \( P_0 \), при \( t=1 \) — через последнюю \( P_n \). Промежуточные точки \( P_1, \dots, P_{n-1} \) не лежат на кривой, но определяют её форму и направление касательных в начальной и конечной точках.

Свойства кривых Безье

  • Интерполяция концов: кривая всегда проходит через первую и последнюю контрольные точки.
  • Касательность: вектор касательной в начальной точке направлен от \( P_0 \) к \( P_1 \), а в конечной — от \( P_{n-1} \) к \( P_n \).
  • Выпуклая оболочка: кривая целиком лежит внутри выпуклой оболочки своих контрольных точек.
  • Инвариантность к аффинным преобразованиям: для получения кривой после переноса, поворота или масштабирования достаточно применить преобразование к контрольным точкам.
  • Вариация уменьшения: кривая не может пересекать прямую линию большее число раз, чем её контрольный многоугольник.

История

Кривые были независимо разработаны в 1959 году французским инженером Полем де Кастельжо (Paul de Casteljau) для компании Citroën и в 1962 году Пьером Безье (Pierre Bézier) для компании Renault. Безье использовал их для проектирования кузовов автомобилей, что позволило заменить традиционные чертежи математическими моделями. В 1966 году американский математик Форрест (Forrest) установил связь между кривыми Безье и полиномами Бернштейна, что дало строгую математическую основу. В 1970-х годах алгоритм де Кастельжо стал стандартным методом вычисления кривых, а в 1980-х кривые Безье были включены в язык PostScript и шрифты TrueType.

Классификация по степени

Линейная кривая Безье (степень 1)

Задаётся двумя точками \( P_0 \) и \( P_1 \). Уравнение: \( B(t) = (1-t)P_0 + tP_1 \). Представляет собой отрезок прямой линии.

Квадратичная кривая Безье (степень 2)

Задаётся тремя точками \( P_0, P_1, P_2 \). Уравнение: \( B(t) = (1-t)^2 P_0 + 2t(1-t)P_1 + t^2 P_2 \). Используется в шрифтах TrueType и в графических редакторах для создания дуг.

Кубическая кривая Безье (степень 3)

Задаётся четырьмя точками \( P_0, P_1, P_2, P_3 \). Уравнение: \( B(t) = (1-t)^3 P_0 + 3t(1-t)^2 P_1 + 3t^2(1-t)P_2 + t^3 P_3 \). Наиболее распространённый тип — используется в шрифтах PostScript, в SVG-графике, в CSS-анимациях (cubic-bezier) и в большинстве САПР.

Кривые высших степеней

Степень 4 и выше используются реже из-за роста вычислительной сложности и потери локального контроля. Для сложных форм обычно применяют составные кривые Безье (B-сплайны).

Алгоритм де Кастельжо

Это рекурсивный метод вычисления точки на кривой Безье для заданного значения параметра \( t \). Алгоритм заключается в последовательном делении отрезков между контрольными точками в пропорции \( t : (1-t) \):

  1. Для \( n+1 \) контрольных точек \( P_0, \dots, P_n \) вычисляются промежуточные точки \( P_i^{(1)} = (1-t)P_i + tP_{i+1} \) для \( i = 0, \dots, n-1 \).
  2. Процесс повторяется, пока не останется одна точка — она и будет лежать на кривой.

Алгоритм де Кастельжо также позволяет разбить кривую на две части в заданной точке, что используется при редактировании.

Применение

Компьютерная графика и дизайн

Кривые Безье являются основой векторной графики. В программах Adobe Illustrator, CorelDRAW, Inkscape и Figma инструмент «Перо» (Pen Tool) позволяет создавать пути, состоящие из кубических кривых Безье. В формате SVG кривые задаются командами C (cubic) и Q (quadratic).

Шрифтовые технологии

В шрифтах TrueType используются квадратичные кривые Безье, а в PostScript и OpenType — кубические. Это позволяет компактно описывать контуры глифов с высокой точностью.

Анимация и веб-технологии

В CSS функция cubic-bezier() задаёт профиль скорости анимации. Например, cubic-bezier(0.42, 0, 0.58, 1) соответствует стандартному плавному ускорению/замедлению (ease-in-out).

Автомобилестроение и САПР

Пьер Безье разработал кривые для проектирования кузовов Renault. В современных САПР (CATIA, SolidWorks, NX) кривые Безье используются как базовые элементы для построения поверхностей.

Робототехника

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

Связь с другими математическими объектами

  • B-сплайны являются обобщением кривых Безье: позволяют задавать составные кривые с локальным контролем и более высокой степенью гладкости в точках стыка.
  • NURBS (Non-Uniform Rational B-Splines) — рациональные B-сплайны, которые включают кривые Безье как частный случай и позволяют точно описывать конические сечения (окружности, эллипсы).
  • Полиномы Бернштейна образуют базис, в котором записываются кривые Безье.

Интересные факты

  • Пьер Безье не был математиком — он работал инженером-конструктором. Его математический аппарат был разработан для практических нужд автомобильной промышленности.
  • Алгоритм де Кастельжо был опубликован только в 1974 году, хотя использовался в Citroën с конца 1950-х годов.
  • Кривые Безье используются в шрифтах для кириллицы и латиницы, что обеспечивает их чёткое отображение при любом масштабе.
  • В языке программирования Python библиотека bezier позволяет выполнять операции с кривыми Безье произвольной степени.

Источники

  • Bézier, P. (1972). Numerical Control: Mathematics and Applications. Wiley.
  • De Casteljau, P. (1959). Courbes et surfaces à pôles. Citroën.
  • Farin, G. (2002). Curves and Surfaces for CAGD: A Practical Guide. Morgan Kaufmann.
  • Rogers, D. F. (2001). An Introduction to NURBS: With Historical Perspective. Academic Press.
  • Foley, J. D., van Dam, A., Feiner, S. K., Hughes, J. F. (1996). Computer Graphics: Principles and Practice. Addison-Wesley.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →