Кривая Безье

Материал из Википедии — свободной энциклопедии

Кривы́е Безье́ — типы кривых, предложенные в 60-х годах XX века независимо друг от друга

Ситроен
», где применялись для проектирования кузовов автомобилей.

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

производственная тайна
до конца 1960-х.

Кривая Безье является частным случаем многочленов Бернштейна, описанных русским математиком Сергеем Натановичем Бернштейном в 1912 году.

Впервые кривые были представлены широкой публике в 1962 году французским инженером Пьером Безье, который, разработав их независимо от де Кастельжо, использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых (алгоритм де Кастельжо).

Впоследствии это открытие стало одним из важнейших инструментов

систем автоматизированного проектирования и программ компьютерной графики
.

Определение

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

Тогда множество точек с координатами , параметрически задаваемыми выражениями

для где а для ,

называется кривой Безье.

Многочлен степени по параметру называется базисной функцией (соответствующей контрольной точке ) кривой Безье или

полиномом Бернштейна
.

Здесь  — число сочетаний из по .

Замечания

  1. Кривая Безье, соответствующая как так и , есть точка .
  2. Кривая Безье, соответствующая паре , то есть при , есть (линейно) параметризованный отрезок, соединяющий точку (при ) с точкой (при ).
  3. При любом порядке кривая Безье содержит как точку (это — образ параметра ), так и точку (это — образ параметра ).
  4. Кривая Безье (в общем случае, то есть если не выродилась в точку ) ориентируема, поскольку является образом ориентированного отрезка . Последовательностям контрольных точек и соответствуют кривые Безье, которые совпадают как множества точек, но имеют (в общем случае) противоположные ориентации.
  5. Кривые Безье, соответствующие последовательностям контрольных точек и , при не совпадают.
  6. Если изменить , то изменяется только .

Виды кривых Безье

Линейные кривые

Линейная кривая Безье

При n = 1 кривая представляет собой отрезок прямой линии, опорные точки P0 и P1 определяют его начало и конец. Кривая задаётся уравнением:

.

Квадратичные кривые

Квадратичная кривая Безье

Квадратичная кривая Безье (n = 2) задаётся тремя опорными точками: P0, P1 и P2.

.

Квадратичные кривые Безье в составе сплайнов используются для описания формы символов в шрифтах TrueType и в SWF-файлах.

Кубические кривые

Кубическая кривая Безье

В параметрической форме кубическая кривая Безье (n = 3) описывается следующим уравнением:

.

Четыре опорные точки P0, P1, P2 и P3, заданные в 2- или 3-мерном пространстве, определяют форму кривой.

Линия берёт начало из точки P0, направляясь к P1 и заканчивается в точке P3, подходя к ней со стороны P2. То есть, кривая не проходит через точки P1 и P2, они используются для указания её направления. Длина отрезка между P0 и P1 определяет, как скоро кривая повернёт к P3.

В матричной форме кубическая кривая Безье записывается следующим образом:

,

где называется базисной матрицей Безье:

В современных графических системах и форматах, таких как

CorelDraw и GIMP
для представления криволинейных форм используются сплайны Безье, составленные из кубических кривых.

Построение кривых Безье

Линейные кривые

Параметр t в функции, описывающей линейный случай кривой Безье, определяет, где именно на расстоянии от P0 до P1 находится B(t). Например, при t = 0,25 значение функции B(t) соответствует четверти расстояния между точками P0 и P1. Параметр t изменяется от 0 до 1, а B(t) описывает отрезок прямой между точками P0 и P1.

Квадратичные кривые

Для построения квадратичных кривых Безье требуется выделение двух промежуточных точек Q0 и Q1 из условия, чтобы параметр t изменялся от 0 до 1:

  • Точка Q0 изменяется от P0 до P1 и описывает линейную кривую Безье.
  • Точка Q1 изменяется от P1 до P2 и также описывает линейную кривую Безье.
  • Точка B изменяется от Q0 до Q1 и описывает квадратичную кривую Безье.
Построение квадратичной кривой Безье
Анимация t: [0;1]

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

Для построения кривых высших порядков соответственно требуется больше промежуточных точек. Для кубической кривой это промежуточные точки Q0, Q1 и Q2, описывающие линейные кривые, а также точки R0 и R1, которые описывают квадратичные кривые: более простое уравнение .

Построение кубической кривой Безье
Анимация t: [0;1]

Для кривых четвёртой степени это будут точки Q0, Q1, Q2 и Q3, описывающие линейные кривые, R0, R1 и R2, которые описывают квадратичные кривые, а также точки S0 и S1, описывающие кубические кривые Безье:

Построение кривой Безье 4-й степени
Анимация t: [0;1]

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

  • непрерывность заполнения сегмента между начальной и конечной точками;
  • кривая всегда располагается внутри фигуры, образованной линиями, соединяющими контрольные точки;
  • при наличии только двух контрольных точек сегмент представляет собой прямую линию;
  • прямая линия образуется при коллинеарном (на одной прямой) размещении управляющих точек;
  • кривая Безье симметрична, то есть обмен местами между начальной и конечной точками (изменение направления траектории) не влияет на форму кривой;
  • масштабирование и изменение пропорций кривой Безье не нарушает её стабильности, поскольку с математической точки зрения она «аффинно инвариантна»;
  • изменение координат хотя бы одной из точек ведет к изменению формы всей кривой Безье;
  • любой частичный отрезок кривой Безье также является кривой Безье;
  • степень (порядок) кривой всегда на одну ступень меньше числа контрольных точек. Например, при трёх контрольных точках форма кривой — парабола, так как парабола — кривая 2-го порядка;
  • окружность не может быть описана параметрическим уравнением кривой Безье;
  • невозможно создать параллельные кривые Безье, за исключением тривиальных случаев (прямые линии и совпадающие кривые), хотя существуют алгоритмы, строящие приближённую параллельную кривую Безье с приемлемой для практики точностью.

Применение в компьютерной графике

Благодаря простоте задания и манипуляции кривые Безье нашли широкое применение в

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

Наибольшее значение имеют кривые Безье второй и третьей степеней (квадратичные и кубические). Кривые высших степеней при обработке требуют большего объёма вычислений и для практических целей используются реже. Для построения сложных по форме линий отдельные кривые Безье могут быть последовательно соединены друг с другом в

3D-моделирования
кривые Безье имеют название «сплайны».

Преобразование квадратичных кривых Безье в кубические

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

Уровень дискретизации определяется следующим образом:

, то есть каждая следующая точка должна отличаться от предыдущей на 1 (допустим пиксель). Причём, если задать следующим образом:

Через него можно вычислить .

Решим это уравнение для кривых Безье первого порядка (линейных):

Запишем разницу точек для одной оси:

Вынесем общие множители за скобки:

Найдём :

так можно вычислить уровень дискретизации для обхода конкретной оси кривой Безье определённого порядка. То есть Вам нужно получить 16 таких уравнений для кривых Безье с 1го по 16 порядок, она всегда задаётся точками, их координаты достаточно будет подставить в полученное уравнение, чтобы обойти кривую с минимальным однозначным уровнем дискретизации.

См. также

Примечания

  1. W3C). Scalable Vector Graphics (SVG) 1.1 (Second Edition). Chapter 8: Paths (англ.) (16 августа 2011). — W3C Recommendation. Дата обращения: 21 мая 2012. Архивировано
    24 июня 2012 года.
  2. Алгоритмы: Кривые Безье. designermanuals.blogspot.com. Дата обращения: 9 января 2021. Архивировано 12 января 2021 года.

Литература

  • Роджерс Д., Адамс Дж. Математические основы машинной графики. — М.: Мир, 2001.

Ссылки