Безье — красный безье проходит через синие вершины, зеленые точки — это контрольные точки, определяющие форму соединяющихся кривых Безье.
В геометрическом моделировании и компьютерной графике составная кривая Безье или сплайн Безье представляет собой сплайн , составленный из кривых Безье , который, по крайней мере, непрерывен . Другими словами, составная кривая Безье — это серия кривых Безье, соединенных концами, где последняя точка одной кривой совпадает с начальной точкой следующей кривой. В зависимости от применения могут быть добавлены дополнительные требования к плавности (например , непрерывности). [1]
Непрерывный составной Безье также называется полибезье по сходству с ломаной линией , но в то время как в полилиниях точки соединены прямыми линиями, в полибезье точки соединены кривыми Безье. Безьегон (также называемый безигоном ) — это замкнутый путь, составленный из кривых Безье . Он похож на многоугольник тем, что соединяет набор вершин линиями, но в то время как в многоугольниках вершины соединены прямыми линиями, в безьергоне вершины соединены кривыми Безье. [2] [3] [4] Некоторые авторы даже называют составную кривую Безье «сплайном Безье»; [5] последний термин, однако, используется другими авторами как синоним (несоставной) кривой Безье, и они добавляют слово «составной» перед «сплайном Безье», чтобы обозначить составной случай. [6]
Возможно, наиболее распространенным применением составного Безье является описание контура каждой буквы в файле PostScript или PDF . Такие контуры состоят из одного безьергона для открытых букв или из нескольких безьергонов для закрытых букв. Современные системы векторной графики и компьютерных шрифтов, такие как PostScript , Asymptote , Metafont , OpenType и SVG , используют составные кривые Безье, состоящие из кубических кривых Безье (кривые 3-го порядка) для рисования изогнутых форм.
Функция Sinc , аппроксимированная с помощью гладкого сплайна Безье, т. е. серии плавно соединенных кривых Безье.
Плавное соединение
Обычно желаемым свойством сплайнов является соединение отдельных кривых с заданным уровнем параметрической или геометрической непрерывности . Хотя отдельные кривые сплайна полностью непрерывны в пределах своего интервала, всегда существует некоторый разрыв в местах пересечения различных кривых.
Сплайн Безье уникален тем, что это один из немногих сплайнов, который не гарантирует более высокую степень непрерывности, чем . Однако можно организовать контрольные точки, чтобы гарантировать различные уровни непрерывности соединений, хотя это может привести к потере локального контроля, если ограничение слишком строгое для данной степени сплайна Безье.
Плавное соединение кубического Безье
Учитывая две кубические кривые Безье с контрольными точками и соответственно, ограничения для обеспечения непрерывности при можно определить следующим образом:
(позиционная непрерывность) требует, чтобы они встречались в одной и той же точке, что по определению делают все сплайны Безье. В этом примере общей точкой является
(непрерывность скорости) требует, чтобы соседние контрольные точки вокруг соединения были зеркалами друг друга. Другими словами, они должны следовать ограничению
(непрерывность касательной) требует, чтобы соседние контрольные точки были коллинеарны соединению. Это менее строго, чем непрерывность, и оставляет дополнительную степень свободы, которую можно параметризовать с помощью скаляра . Тогда ограничение может быть выражено выражением
Хотя следующие ограничения непрерывности возможны, они редко используются с кубическими сплайнами Безье, поскольку другие сплайны, такие как B-сплайн или β-сплайн [7], естественным образом справляются с более высокими ограничениями без потери локального управления.
(непрерывность ускорения) ограничена . Однако применение этого ограничения ко всему кубическому сплайну Безье приведет к каскадной потере локального контроля над точками касания. Кривая по-прежнему будет проходить через каждую третью точку сплайна, но контроль над ее формой будет потерян. Чтобы добиться непрерывности с использованием кубических кривых, вместо этого рекомендуется использовать кубический однородный B-сплайн, поскольку он обеспечивает непрерывность без потери локального управления за счет отсутствия гарантии прохождения через определенные точки.
(непрерывность кривизны) ограничивается , оставляя две степени свободы по сравнению с , в виде двух скаляров и . Возможна более высокая степень геометрической непрерывности, хотя она становится все более сложной [8].
(непрерывность толчка) ограничена . Применение этого ограничения к кубическому сплайну Безье приведет к полной потере локального управления, поскольку весь сплайн теперь полностью ограничен и определяется контрольными точками первой кривой. Фактически, это, возможно, больше не сплайн, поскольку его форма теперь эквивалентна бесконечной экстраполяции первой кривой, что делает ее не только непрерывной, но и , поскольку соединения между отдельными кривыми больше не существуют.
Аппроксимация дуг окружности
Если примитивы дуг окружности не поддерживаются в конкретной среде, их можно аппроксимировать кривыми Безье . [9] Обычно для аппроксимации круга используются восемь квадратных сегментов [10] или четыре кубических сегмента. Желательно найти длину контрольных точек, при которой ошибка аппроксимации будет наименьшей для заданного числа кубических отрезков.
Используя точку как середину дуги, мы можем написать следующие два уравнения:
Решение этих уравнений для координаты x (и тождественно для координаты y) дает:
Однако обратите внимание, что полученная кривая Безье полностью находится за пределами круга с максимальным отклонением радиуса около 0,00027. Добавляя небольшую поправку к промежуточным точкам, таким как
величина отклонения радиуса до 1 уменьшается примерно в 3 раза, до 0,000068 (за счет выводимости аппроксимируемой окружной кривой в конечных точках).
Общий случай
Мы можем аппроксимировать окружность радиуса произвольным количеством кубических кривых Безье. Пусть дуга начинается в точке и заканчивается в точке , расположенной на равных расстояниях выше и ниже оси X, охватывая дугу угла :
Контрольные точки можно записать как: [11]
Примеры
Восьмисегментный квадратичный полибезье (красный), аппроксимирующий окружность (черный) с контрольными точками
Четырехсегментный кубический полибезье (красный), аппроксимирующий круг (черный) с контрольными точками
Шрифты
В шрифтах TrueType используются составные кривые Безье, состоящие из квадратичных кривых Безье (кривые 2-го порядка). Чтобы описать типичный дизайн шрифта в виде компьютерного шрифта с любой заданной точностью, для Безье 3-го порядка требуется меньше данных, чем для Безье 2-го порядка; а для этого, в свою очередь, требуется меньше данных, чем для серии прямых линий. Это верно, даже несмотря на то, что любой сегмент прямой требует меньше данных, чем любой сегмент параболы; и этот параболический сегмент, в свою очередь, требует меньше данных, чем любой сегмент кривой 3-го порядка.
^ Евгений В. Шикин; Александр Иванович Плис (14 июля 1995 г.). Руководство по сплайнам для пользователя. ЦРК Пресс. п. 96. ИСБН 978-0-8493-9404-1.
^ API-интерфейс Microsoft Polybezier
^ Справочник по API Papyrus beziergon
^ «Лучшая коробка с мелками» . ИнфоМир. 1991.
^ Ребаза, Хорхе (24 апреля 2012 г.). Первый курс прикладной математики. Джон Уайли и сыновья. ISBN9781118277157.
^ (Фирма), Wolfram Research (13 сентября 1996 г.). Стандартные дополнительные пакеты Mathematica ® 3.0. Издательство Кембриджского университета. ISBN9780521585859.
↑ Гудман, TNT (9 декабря 1983 г.). «Свойства β-сплайнов». Журнал теории приближения . 44 (2): 132–153. дои : 10.1016/0021-9045(85)90076-0 .
^ ДеРоуз, Энтони Д. (1 августа 1985 г.). «Геометрическая непрерывность: независимая от параметризации мера непрерывности для компьютерного геометрического проектирования».
^ Станислав, Г. Адам. «Рисование круга с помощью кривых Безье» . Проверено 10 апреля 2010 г.
^ «Оцифровка буквенных конструкций» . Яблоко . Проверено 26 июля 2014 г.
^ ДеВенеза, Ричард. «Рисование круга с помощью кривых Безье» (PDF) . Проверено 10 апреля 2010 г.