Кривые Безье
Кривая Безье — это параметрическая кривая, задаваемая набором опорных (контрольных) точек, математически описываемая с помощью полиномов Бернштейна. Кривые Безье являются фундаментальным инструментом в компьютерной графике, системах автоматизированного проектирования (САПР), шрифтовых технологиях и робототехнике благодаря своей способности создавать гладкие, интуитивно управляемые формы при минимальном объёме данных.
Определение и математическое описание
Кривая Безье степени \( 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) \):
- Для \( n+1 \) контрольных точек \( P_0, \dots, P_n \) вычисляются промежуточные точки \( P_i^{(1)} = (1-t)P_i + tP_{i+1} \) для \( i = 0, \dots, n-1 \).
- Процесс повторяется, пока не останется одна точка — она и будет лежать на кривой.
Алгоритм де Кастельжо также позволяет разбить кривую на две части в заданной точке, что используется при редактировании.
Применение
Компьютерная графика и дизайн
Кривые Безье являются основой векторной графики. В программах 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 →