Кривая Безье ( / б ɛ г . Я . Eɪ / BEH -zee-ау ) [1] является параметрическая кривая используется в компьютерной графике и смежных областях. [2] Кривые, связанные с полиномами Бернштейна , названы в честь Пьера Безье , который использовал их в 1960-х годах для проектирования кривых кузова автомобилей Renault . [3] Другие варианты использования включают разработку компьютерных шрифтов и анимации. [3] Кривые Безье можно объединить вСплайн Безье или обобщенный на более высокие измерения для формирования поверхностей Безье . [3] Безье треугольник является частным случаем последнего.
В векторной графике кривые Безье используются для моделирования гладких кривых, которые можно масштабировать до бесконечности. «Пути», как их обычно называют в программах обработки изображений, [примечание 1] представляют собой комбинации связанных кривых Безье. Пути не ограничены рамками растеризованных изображений и интуитивно понятны для изменения.
Кривые Безье также используются во временной области, в частности , в анимации , [4] Пользовательский интерфейс [примечание 2] дизайн и сглаживание траектории курсора в глазу пристальный взгляд управляется интерфейсами. [5] Например, кривую Безье можно использовать для определения скорости во времени объекта, такого как значок, перемещающегося от A к B, вместо того, чтобы просто перемещаться с фиксированным числом пикселей за шаг. Когда аниматоры или дизайнеры интерфейсов говорят о «физике» или «ощущении» операции, они могут иметь в виду конкретную кривую Безье, используемую для управления скоростью рассматриваемого движения с течением времени.
Это также относится к робототехнике, где, например, движение сварочного рычага должно быть плавным, чтобы избежать ненужного износа.
Изобретение
Математическая основа для кривых Безье - полиномы Бернштейна - была создана в 1912 году, но полиномы не применялись в графике примерно 50 лет спустя, когда математик Поль де Кастельжау в 1959 году разработал алгоритм де Кастельжау , численно стабильный метод вычисления кривых. и стал первым, кто применил их в системе автоматизированного проектирования на французском автопроизводителе Citroën . [6] Тем не менее, метод де Кастельжау был запатентован во Франции, но не опубликован до 80-х годов [7], в то время как полиномы Безье были широко опубликованы в 1960-х годах французским инженером Пьером Безье , который открыл их независимо и использовал их для проектирования автомобильных кузовов на заводе-изготовителе. Renault .
Конкретные случаи
Кривая А Безье определяется набором из контрольных точек P 0 через Р п , где п называется порядок кривой ( п = 1 для линейных, 2 для квадратичной и т.д.). Первая и последняя контрольные точки всегда являются конечными точками кривой; однако промежуточные контрольные точки (если они есть) обычно не лежат на кривой. Суммы в следующих разделах следует понимать как аффинные комбинации, то есть сумма коэффициентов равна 1.
Линейные кривые Безье
Для различных точек P 0 и P 1 линейная кривая Безье - это просто прямая линия между этими двумя точками. Кривая задается
и эквивалентен линейной интерполяции .
Квадратичные кривые Безье
Квадратичная кривая Безье - это путь, пройденный функцией B ( t ) для заданных точек P 0 , P 1 и P 2 ,
- ,
который можно интерпретировать как линейный интерполянт соответствующих точек на линейных кривых Безье от P 0 до P 1 и от P 1 до P 2 соответственно. Преобразование предыдущего уравнения дает:
Это можно записать таким образом, чтобы подчеркнуть симметрию относительно P 1 :
Что сразу дает производную кривой Безье по t :
из чего можно сделать вывод, что касательные к кривой в точках P 0 и P 2 пересекаются в точке P 1 . Когда t увеличивается от 0 до 1, кривая отклоняется от P 0 в направлении P 1 , затем изгибается, чтобы достичь P 2 из направления P 1 .
Вторая производная кривой Безье по t равна
Кубические кривые Безье
Четыре точки P 0 , P 1 , P 2 и P 3 на плоскости или в многомерном пространстве определяют кубическую кривую Безье. Кривая начинается в точке P 0 по направлению к P 1 и достигает точки P 3 в направлении P 2 . Обычно он не проходит через P 1 или P 2 ; эти точки служат только для получения информации о направлении. Расстояние между P 1 и P 2 определяет, «как далеко» и «насколько быстро» кривая перемещается к P 1 перед поворотом к P 2 .
Записывая B P i , P j , P k ( t ) для квадратичной кривой Безье, определенной точками P i , P j и P k , кубическая кривая Безье может быть определена как аффинная комбинация двух квадратичных кривых Безье:
Явный вид кривой:
Для некоторых вариантов P 1 и P 2 кривая может пересекаться сама с собой или содержать острие .
Любую серию из 4 различных точек можно преобразовать в кубическую кривую Безье, которая проходит через все 4 точки по порядку. Учитывая начальную и конечную точки некоторой кубической кривой Безье и точки вдоль кривой, соответствующие t = 1/3 и t = 2/3, контрольные точки для исходной кривой Безье могут быть восстановлены. [8]
Производная кубической кривой Безье по t равна
Вторая производная кривой Безье по t равна
Общее определение
Кривые Безье можно определить для любой степени n .
Рекурсивное определение
Рекурсивное определение кривой Безье степени n выражает ее как двухточечную линейную комбинацию ( линейная интерполяция ) пары соответствующих точек в двух кривых Безье степени n - 1.
Позволять обозначим кривую Безье, определяемую любым выбором точек P 0 , P 1 , ..., P k . Затем, чтобы начать,
Эта рекурсия поясняется в анимации ниже .
Явное определение
Формулу можно явно выразить следующим образом:
где - биномиальные коэффициенты .
Например, при n = 5:
Терминология
С этими параметрическими кривыми связана некоторая терминология. У нас есть
где многочлены
известны как базисные полиномы Бернштейна степени n .
Обратите внимание, что t 0 = 1, (1 - t ) 0 = 1 и что биномиальный коэффициент ,, является:
Точки P i называются контрольными точками кривой Безье. Многоугольник , образованный , соединяющая точки Безье с линиями , начиная с Р 0 и заканчивая Р п , называется Безье многоугольник (или управление полигона ). Выпуклая оболочка полигона Безье содержит кривой Безье.
Полиномиальная форма
Иногда желательно выразить кривую Безье как полином, а не как сумму менее простых полиномов Бернштейна . Применение биномиальной теоремы к определению кривой с последующей некоторой перестановкой даст
где
Это может быть практично, если можно вычислить до многих оценок ; однако следует проявлять осторожность, поскольку кривые высокого порядка могут не иметь числовой стабильности ( в этом случае следует использовать алгоритм де Кастельжау ). Обратите внимание, что пустой продукт равен 1.
Характеристики
- Кривая начинается в P 0 и заканчивается в P n ; это так называемое свойство интерполяции конечной точки .
- Кривая является прямой линией тогда и только тогда, когда все контрольные точки коллинеарны .
- Начало и конец кривой касаются первого и последнего участка многоугольника Безье соответственно.
- Кривая может быть разделена в любой точке на две субкривые или на произвольное количество субкривых, каждая из которых также является кривой Безье.
- Некоторые кривые, которые кажутся простыми, такие как окружность , не могут быть описаны точно ни кривой Безье, ни кусочной кривой Безье; хотя кубическая кривая Безье из четырех частей может аппроксимировать круг (см. составную кривую Безье ) с максимальной радиальной погрешностью менее одной части из тысячи, когда каждая внутренняя контрольная точка (или автономная точка) является расстояниемгоризонтально или вертикально от внешней контрольной точки на единичной окружности. В более общем смысле, кубическая кривая Безье из n частей может аппроксимировать круг, когда каждая внутренняя контрольная точка представляет собой расстояниеот внешней контрольной точки на единичной окружности, где t равно 360 / n градусов, а n > 2.
- Каждая квадратичная кривая Безье также является кубической кривой Безье, и в более общем плане каждая кривая Безье степени n также является кривой степени m для любого m > n . Более подробно, кривая степени n с контрольными точками P 0 , ..., P n эквивалентна (включая параметризацию) кривой степени n + 1 с контрольными точками P ' 0 , ..., P' n + 1 , где.
- Кривые Безье обладают свойством уменьшения вариации . Интуитивно это означает, что кривая Безье не «волнообразна» больше, чем многоугольник ее контрольных точек, и на самом деле может «волнообразно» меньше. [9]
- На кривых Безье степени n нет местного управления - это означает, что любое изменение контрольной точки требует перерасчета и, таким образом, влияет на аспект всей кривой, "хотя чем дальше от контрольной точки, которая была изменена, тем меньше изменение кривой ". [10]
- Кривая Безье порядка выше двух может пересекаться сама с собой или иметь острие для определенного выбора контрольных точек.
Кривая второго порядка - параболический отрезок
Квадратичная кривая Безье также является отрезком параболы . Поскольку парабола представляет собой коническое сечение , некоторые источники называют квадратичную кривую Безье «коническими дугами». [11] Со ссылкой на рисунок справа, важные характеристики параболы могут быть получены следующим образом: [12]
- Касательные к параболе в конечных точках кривой (A и B) пересекаются в ее контрольной точке (C).
- Если D - середина AB, касательная к кривой, перпендикулярной CD (пунктирная голубая линия), определяет ее вершину (V). Его ось симметрии (голубой штрих-пунктир) проходит через V и перпендикулярна касательной.
- E - любая точка на кривой с касательной под углом 45 ° к CD (пунктирная зеленая линия). Если G является пересечением этой касательной и оси, прямая, проходящая через G и перпендикулярная CD, является директрисой (сплошной зеленый).
- Фокус (F) находится на пересечении оси и линии, проходящей через E и перпендикулярной CD (желтая пунктирная линия). Прямая кишка - это линейный сегмент внутри кривой (сплошной желтый цвет).
Производная
Производная для кривой порядка n равна
Построение кривых Безье
Линейные кривые
Т в функции для линейной кривой Безье можно рассматривать как описывающие , как далеко Б ( т ) составляет от P 0 до P 1 . Например, когда t = 0,25, B ( t ) составляет одну четверть пути от точки P 0 до P 1 . Поскольку t изменяется от 0 до 1, B ( t ) описывает прямую линию от P 0 до P 1 .
Анимация линейной кривой Безье, t в [0,1] |
Квадратичные кривые
Для квадратичных кривых Безье можно построить промежуточные точки Q 0 и Q 1 такие, что при изменении t от 0 до 1:
- Точка Q 0 ( t ) изменяется от P 0 до P 1 и описывает линейную кривую Безье.
- Точка Q 1 ( t ) изменяется от P 1 до P 2 и описывает линейную кривую Безье.
- Точка B ( t ) линейно интерполируется между Q 0 ( t ) и Q 1 ( t ) и описывает квадратичную кривую Безье.
Построение квадратичной кривой Безье | Анимация квадратичной кривой Безье, t в [0,1] |
Кривые высшего порядка
Соответственно, для кривых более высокого порядка требуется больше промежуточных точек. Для кубических кривых можно построить промежуточные точки Q 0 , Q 1 и Q 2 , описывающие линейные кривые Безье, и точки R 0 и R 1 , описывающие квадратичные кривые Безье:
Построение кубической кривой Безье | Анимация кубической кривой Безье, t в [0,1] |
Для кривых четвертого порядка можно построить промежуточные точки Q 0 , Q 1 , Q 2 и Q 3 , описывающие линейные кривые Безье, точки R 0 , R 1 и R 2 , описывающие квадратичные кривые Безье, и точки S 0 и S 1, которые описать кубические кривые Безье:
Построение кривой Безье четвертой степени | Анимация кривой Безье четвертой степени, t в [0,1] |
Для кривых пятого порядка можно построить аналогичные промежуточные точки.
Анимация кривой Безье пятого порядка, t в [0,1] красным. Также показаны кривые Безье для каждого из нижних порядков. |
Эти представления основаны на процессе, используемом в алгоритме Де Кастельжау для вычисления кривых Безье. [13]
Смещения (также известные как обводка) кривых Безье
Кривая с фиксированным смещением от заданной кривой Безье, называемая смещением или параллельной кривой в математике (лежащая «параллельно» исходной кривой, как смещение между рельсами на железнодорожном пути ), не может быть точно сформирована кривой Безье ( кроме некоторых тривиальных случаев). В общем, двусторонняя кривая смещения кубической кривой Безье является алгебраической кривой 10-го порядка [14], а в более общем плане для кривой Безье степени n двусторонняя кривая смещения является алгебраической кривой степени 4 n −2. [15] Однако существуют эвристические методы, которые обычно дают адекватное приближение для практических целей. [16]
В области векторной графики рисование двух симметрично разнесенных кривых смещения называется штриховкой (кривая Безье или вообще путь из нескольких сегментов Безье). [14] Преобразование из смещенных кривых в заполненные контуры Безье имеет практическое значение при преобразовании шрифтов, определенных в Metafont , который позволяет обводить кривые Безье, в более широко используемые шрифты PostScript типа 1 , которые позволяют (в целях эффективности) только математически более простая операция заполнения контура, определяемого (несамопересекающимися) кривыми Безье. [17]
Степень возвышения
Кривая Безье степени n может быть преобразована в кривую Безье степени n + 1 той же формы . Это полезно, если программное обеспечение поддерживает кривые Безье только определенной степени. Например, системы, которые могут работать только с кубическими кривыми Безье, могут неявно работать с квадратичными кривыми, используя их эквивалентное кубическое представление.
Для повышения степени воспользуемся равенством Каждый компонент умножается на (1 - t ) и t , таким образом увеличивая градус на единицу без изменения значения. Вот пример увеличения степени от 2 до 3.
Для произвольного n воспользуемся равенствами
Следовательно:
введение произвольных а также .
Таким образом, новые контрольные точки [18]
Повторное повышение градуса
Концепция градусного повышения может быть повторена на контрольном многоугольнике R, чтобы получить последовательность контрольных многоугольников R , R 1 , R 2 и так далее. После r возвышений многоугольник R r имеет вершины P 0, r , P 1, r , P 2, r , ..., P n + r , r, заданные формулой [18]
Также можно показать, что для основной кривой Безье B ,
Рациональные кривые Безье
Рациональная кривая Безье добавляет регулируемые веса, чтобы обеспечить более точное приближение к произвольным формам. Числитель - это взвешенная кривая Безье в форме Бернштейна, а знаменатель - взвешенная сумма многочленов Бернштейна . Рациональные кривые Безье могут, среди прочего, использоваться для точного представления сегментов конических сечений , включая дуги окружности. [19]
Для n + 1 контрольных точек P 0 , ..., P n рациональная кривая Безье может быть описана следующим образом:
или просто
Выражение может быть расширено за счет использования числовых систем помимо действительных чисел для весов. На комплексной плоскости точки {1}, {-1} и {1} с весами {}, {1} и {} создать полный круг с радиусом один. Для кривых с точками и весами на окружности веса можно масштабировать без изменения формы кривой. [20] Масштабирование центрального веса приведенной выше кривой на 1,35508 дает более однородную параметризацию.
Приложения
Компьютерная графика
Кривые Безье широко используются в компьютерной графике для моделирования плавных кривых. Поскольку кривая полностью содержится в выпуклой оболочке своих контрольных точек , эти точки могут отображаться графически и использоваться для интуитивного управления кривой. Аффинные преобразования, такие как перенос и поворот, можно применить к кривой, применив соответствующее преобразование к контрольным точкам кривой.
Наиболее распространены квадратичные и кубические кривые Безье. Кривые более высокой степени требуют больших вычислительных затрат для оценки. Когда требуются более сложные формы, кривые Безье низкого порядка соединяются вместе, образуя составную кривую Безье . Составная кривая Безье обычно называется «контуром» в языках векторной графики (например, PostScript ), стандартах векторной графики (например, SVG ) и программах векторной графики (таких как Artline , Timeworks Publisher , Adobe Illustrator , CorelDraw , Inkscape и Allegro ). . Чтобы объединить кривые Безье в составную кривую Безье без перегибов, свойство, называемое G1 непрерывным , достаточно заставить контрольную точку, в которой встречаются две составляющие кривые Безье, лежать на линии, определяемой двумя контрольными точками с обеих сторон.
Самый простой метод преобразования сканирования ( растрирования ) кривой Безье - это оценить ее во многих близко расположенных точках и преобразовать сканирование в аппроксимирующую последовательность сегментов линии. Однако это не гарантирует, что растеризованный результат будет выглядеть достаточно гладким, поскольку точки могут быть расположены слишком далеко друг от друга. И наоборот, он может создать слишком много точек в областях, где кривая близка к линейной. Распространенным адаптивным методом является рекурсивное подразделение, при котором контрольные точки кривой проверяются, чтобы увидеть, приближается ли кривая к прямой с небольшим допуском. В противном случае кривая параметрически разделяется на два сегмента, 0 ≤ t ≤ 0,5 и 0,5 ≤ t ≤ 1, и та же процедура применяется рекурсивно к каждой половине. Существуют также методы прямого дифференцирования, но при анализе распространения ошибок необходимо проявлять особую осторожность. [22]
Аналитические методы, при которых линия Безье пересекается с каждой линией сканирования, включают поиск корней кубических многочленов (для кубических Безье) и работу с несколькими корнями, поэтому на практике они не используются часто. [22]
Алгоритм растеризации, используемый в Metafont , основан на дискретизации кривой, так что она аппроксимируется последовательностью « ходов ладьи », которые являются чисто вертикальными или чисто горизонтальными по границам пикселей. С этой целью плоскость сначала разбивается на восемь секторов по 45 ° (осями координат и двумя линиями), то кривая разбивается на более мелкие сегменты, так что направление сегмента кривой остается в пределах одного сектора; так как скорость кривой является полиномом второй степени, нахождениезначения, когда она параллельна одной из этих линий, могут быть получены путем решения квадратных уравнений . Внутри каждого сегмента преобладает либо горизонтальное, либо вертикальное движение, и общее количество шагов в любом направлении можно считать по координатам конечной точки; например, в этом случае преобладает горизонтальное движение вправо в секторе 0–45 °, поэтому остается только решить, между какими шагами вправо кривая должна сделать шаг вверх. [23]
Существует также модифицированная форма кривой алгоритма рисования линий Брезенхэма от Zingl, которая выполняет эту растеризацию, разделяя кривую на рациональные части и вычисляя ошибку в каждом местоположении пикселя, так что она перемещается либо под углом 45 °, либо прямо, в зависимости от ошибки сложения, как он проходит по кривой. Это сводит вычисление следующего шага к серии сложений и вычитаний целых чисел . [24]
Анимация
В приложениях для анимации, таких как Adobe Flash и Synfig , кривые Безье используются, например, для обозначения движения. Пользователи очерчивают желаемый путь в кривых Безье, и приложение создает необходимые рамки для перемещения объекта по контуру. [25] [26]
В 3D-анимации кривые Безье часто используются для определения 3D-путей, а также 2D-кривые для интерполяции ключевых кадров. [27] Кривые Безье сейчас очень часто используются для управления замедлением анимации в CSS , JavaScript , JavaFx и Flutter SDK . [4]
Шрифты
Шрифты TrueType используют составные кривые Безье, состоящие из квадратичных кривых Безье. Другие языки и инструменты обработки изображений (такие как PostScript , Asymptote , Metafont и SVG ) используют составные кривые Безье, состоящие из кубических кривых Безье, для рисования изогнутых форм. Шрифты OpenType могут использовать любой вид, в зависимости от разновидности шрифта. [28]
Внутренний рендеринг всех кривых Безье в средствах рендеринга шрифтов или векторной графики будет рекурсивно разделить их до точки, в которой кривая станет достаточно плоской, чтобы ее можно было нарисовать как серию линейных или круговых сегментов. Точный алгоритм разделения зависит от реализации, должны соблюдаться только критерии плоскостности, чтобы достичь необходимой точности и избежать немонотонных локальных изменений кривизны. Функция «плавной кривой» диаграмм в Microsoft Excel также использует этот алгоритм. [29]
Поскольку дуги окружностей и эллипсов не могут быть точно представлены кривыми Безье, они сначала аппроксимируются кривыми Безье, которые, в свою очередь, аппроксимируются дугами окружностей. Это неэффективно, поскольку существуют также аппроксимации всех кривых Безье с использованием дуг окружностей или эллипсов, которые могут отображаться постепенно с произвольной точностью. Другой подход, используемый современными аппаратными графическими адаптерами с ускоренной геометрией, может преобразовывать точно все кривые Безье и конические кривые (или поверхности) в NURBS , которые можно визуализировать постепенно, без предварительного рекурсивного разделения кривой для достижения необходимого условия плоскостности. Этот подход также позволяет сохранить определение кривой при всех линейных или перспективных 2D и 3D преобразованиях и проекциях. [ необходима цитата ]
Механизмы шрифтов, такие как FreeType , рисуют кривые (и линии) шрифта на пиксельной поверхности, используя процесс, известный как растеризация шрифта . [11]
Робототехника
Кривые Безье могут использоваться в робототехнике для создания траекторий конечного эффектора благодаря способности управляющего многоугольника четко указывать, сталкивается ли этот путь с каким-либо ближайшим препятствием или объектом. [30] Кроме того, траектории суставного пространства можно точно дифференцировать с помощью кривых Безье. Следовательно, производные траекторий суставного пространства используются при расчете динамики и управляющего усилия (профилей крутящего момента) робота-манипулятора. [30]
Смотрите также
- Поверхность Безье
- B-шлиц
- GEM / 4 и GEM / 5
- Кривая Эрмита
- NURBS
- Струнное искусство - кривые Безье также образованы многими распространенными формами струнного искусства, где струны наматываются на гвоздь. [31]
- Свойство уменьшения вариации кривых Безье
Заметки
- ^ Программы обработки изображений, такие как Inkscape , Adobe Photoshop и GIMP .
- ^ В приложениях для анимации, таких как Adobe Flash , Adobe After Effects , Microsoft Expression Blend , Blender , Autodesk Maya и Autodesk 3ds Max .
Рекомендации
Цитаты
- ↑ Уэллс, Джон (3 апреля 2008 г.). Словарь произношения Longman (3-е изд.). Пирсон Лонгман. ISBN 978-1-4058-8118-0.
- ^ Мортенсон, Майкл Э. (1999). Математика для приложений компьютерной графики . Industrial Press Inc. стр. 264. ISBN 9780831131111.
- ^ а б в Hazewinkel, Michiel (1997). Энциклопедия математики: Приложение . 1 . Springer Science & Business Media. п. 119. ISBN 9780792347095.
- ^ а б «Кубический класс - библиотека анимации - Dart API» . api.flutter.dev . Проверено 26 апреля 2021 .
- ^ Бисвас, Прадипта; Лэнгдон, Пэт (2015-04-03). «Мультимодальная интеллектуальная система отслеживания взгляда». Международный журнал взаимодействия человека и компьютера . 31 (4): 277–294. DOI : 10.1080 / 10447318.2014.1001301 . ISSN 1044-7318 . S2CID 36347027 .
- ^ Джеральд Э. Фарин; Йозеф Хошек; Мён Су Ким (2002). Справочник по компьютерному геометрическому дизайну . Эльзевир. С. 4–6. ISBN 978-0-444-51104-1.
- ^ Поль де Кастельжау. Mathématiques et CAO. Том 2: Formes à pôles . ISBN 9782866010423.
- ^ Джон Буркардт. «Принуждение к интерполяции Безье» . Архивировано из оригинала на 2013-12-25.
- ^ Теофило Гонсалес ; Хорхе Диас-Эррера; Аллен Такер (2014). Справочник по вычислительной технике, третье издание: информатика и разработка программного обеспечения . CRC Press. стр. 32-14. ISBN 978-1-4398-9852-9.
- ^ Макс К. Агостон (2005). Компьютерная графика и геометрическое моделирование: реализация и алгоритмы . Springer Science & Business Media. п. 404. ISBN 978-1-84628-108-2.
- ^ а б «Условные обозначения символов FreeType / VI. Общие положения FreeType» . Проект свободного типа . 13 февраля 2018.
«Соглашения о символах FreeType - Версия 2.1 / VI. Общие сведения о FreeType» . 6 марта 2011 года Архивировано из оригинала на 2011-09-29. - ^ Дункан Марш (2005). Прикладная геометрия для компьютерной графики и САПР . Серия Springer по математике для студентов (2-е изд.). ISBN 978-1-85233-801-5. ASIN 1852338016 .
- ^ Шене, CK "Нахождение точки на кривой Безье: алгоритм де Кастельжау" . Проверено 6 сентября 2012 года .
- ^ а б Марк Килгард (10 апреля 2012 г.). "CS 354 Векторная графика и рендеринг контуров" . п. 28.
- ^ Рида Т. Фаруки. «Введение в кривые Пифагора-годографа» (PDF) ., в частности стр. 16 «Таксономия офсетных кривых».
- ^ Например: [1] или [2] . Обзор см. В [3] .
- ^ Ричард Дж. Кинч (1995). «MetaFog: преобразование форм Metafont в контуры» (PDF) . ТУГбоат . 16 (3 – Материалы годового собрания 1995 г.).
- ^ а б Фарин, Джеральд (1997). Кривые и поверхности для компьютерного геометрического дизайна (4-е изд.). Книги о науке и технологиях Elsevier . ISBN 978-0-12-249054-5.
- ^ Нил Доджсон (2000-09-25). «Некоторые математические элементы графики: рациональные B-сплайны» . Проверено 23 февраля 2009 .
- ^ Х. Санчес-Рейес (ноябрь 2009 г.). «Комплексные рациональные кривые Безье». Компьютерный геометрический дизайн . 26 (8): 865–876. DOI : 10.1016 / j.cagd.2009.06.003 .
- ^ Александр Решетов и Дэвид Luebke, Phantom Ray-Hair межсекторного. В материалах ACM по компьютерной графике и интерактивным методам (1 августа 2018 г.). [4]
- ^ а б Сюэсян Ли и Цзюньсяо Сюэ. «Комплексная квадратичная кривая Безье на единичной окружности» . Чжэнчжоу, Китай: Школа программного обеспечения Университета Чжэнчжоу.
- ↑ Части 19–22 из Кнут, Дональд Э. (1986). Метафонт: Программа . Эддисон-Уэсли. ISBN 0-201-13438-1.
- ^ Зингл, Алоис «Алгоритм растеризации для рисования кривых» (2012) http://members.chello.at/~easyfilter/Bresenham.pdf
- ^ «Использование траекторий движения в анимации» . Adobe . Проверено 11 апреля 2019 .
- ^ «По сплайну» . Synfig Wiki . Проверено 11 апреля 2019 .
- ^ Доджсон, Нил А. (1999). «Конспект лекций по продвинутой графике» (PDF) . cl.cam.ac.uk . Компьютерная лаборатория Кембриджского университета.
- ^ «Разница между CFF и TTF» . Ноу-хау . Линотип. Архивировано из оригинала на 2017-07-03 . Проверено 3 июля 2018 .
Формат OpenType был сформулирован в 1996 году. К 2003 году он начал заменять два конкурирующих формата: шрифты Type1, разработанные Adobe и основанные на скрипте [P] ost [S], и шрифты TrueType, разработанные Microsoft и Apple. (...) TTF означает TrueTypeFont и указывает, что данные шрифта такие же, как и в шрифтах TrueType. CFF означает формат шрифта Type1. Строго говоря, это относится к компактному формату шрифтов, который используется в процессах сжатия для шрифтов Type2. (...) кубический формат Безье шрифтов Type1 более экономит место по сравнению с квадратичным форматом шрифтов TrueType. Некоторые килобайты можно сэкономить с помощью больших сложных шрифтов, что может дать преимущество в Интернете. С другой стороны, более подробная информация о хинтингах шрифтов TrueType позволяет значительно оптимизировать использование экрана.
- ^ "smooth_curve_bezier_example_file.xls" . Вращающийся анализ Машины, Inc . Архивировано из оригинала на 2011-07-18 . Проверено 5 февраля 2011 .
- ^ а б Малик, Арыслан; Хендерсон, Трой; Празеница, Ричард (январь 2021 г.). «Генерация траектории для многотельной роботизированной системы с использованием продукта формулировки экспонент» . АИАА Scitech 2021 Форум : 2016 DOI : 10,2514 / 6.2021-2016 .
- ^ Гросс, Р. (2014). «Мосты, струнное искусство и кривые Безье». В Питичи, Мирча (ред.). Лучшая работа по математике 2013 . Лучшая работа по математике 2013 . Пенроуз Р. (Автор) и Питичи М. (Ред.). Издательство Принстонского университета. С. 77–89. DOI : 10.1515 / 9781400847990-011 . ISBN 9780691160412. JSTOR j.ctt4cgb74.13 .
Источники
- Рида Т. Фаруки (август 2012 г.). «Полиномиальный базис Бернштейна: столетняя ретроспектива» (PDF) . Компьютерный геометрический дизайн . 29 (6): 379–419. DOI : 10.1016 / j.cagd.2012.03.001 .
- Пол Бурк (19 июля 2009 г.). Поверхности Безье (в 3D) . Архивировано из оригинала на 2009-07-19.
- Дональд Кнут (1986). Метафонт: Программа . Эддисон-Уэсли. С. 123–131.Отличное обсуждение деталей реализации; доступен бесплатно как часть дистрибутива TeX.
- Томас Седерберг. Кривые Безье (PDF) . Архивировано из оригинального (PDF) 21 февраля 2006 года . Проверено 14 сентября 2005 .
- JD Foley; и другие. (1992). Компьютерная графика: принципы и практика в C (2-е изд.). Эддисон Уэсли.
- Раджив Чандель (2014-03-20). «Реализация кривых Безье в играх» .
дальнейшее чтение
- Primer on Bézier Curves - онлайн-книга с открытым исходным кодом, объясняющая кривые Безье и связанные с ними графические алгоритмы с интерактивной графикой.
- Кубические кривые Безье - Под капотом (видео) - видео, показывающее, как компьютеры визуализируют кубическую кривую Безье, Питер Ноуэлл
- От Безье до Бернштейна Рубрика по тематике Американского математического общества
- "Кривая Безье" , Энциклопедия математики , EMS Press , 2001 [1994]
- Prautzsch, Hartmut; Бем, Вольфганг; Палушны, Марко (2002). Безье и методы B-сплайна . Springer Science & Business Media. ISBN 978-3-540-43761-1.
- Галлье, Жан (1999). «Глава 5. Полиномиальные кривые как кривые Безье» . Кривые и поверхности в геометрическом моделировании: теория и алгоритмы . Морган Кауфманн. Эта книга больше не издается и находится в свободном доступе у автора.
- Фарин, Джеральд Э. (2002). Кривые и поверхности для CAGD: Практическое руководство (5-е изд.). Морган Кауфманн. ISBN 978-1-55860-737-8.
- Вайсштейн, Эрик В. «Кривая Безье» . MathWorld .
- Гофман, Гернот. «Кривые Безье» (PDF) . Архивировано из оригинального (PDF) 02 декабря 2006 года. (60 страниц)
- Ан, Ён Джун (2004). «Аппроксимация дуг окружности и кривых смещения кривыми Безье высокой степени» . Журнал вычислительной и прикладной математики . 167 (2): 405–416. Bibcode : 2004JCoAM.167..405A . DOI : 10.1016 / j.cam.2003.10.008 .
- Дэвис, Джейсон. «Анимированные кривые Безье» .
Внешние ссылки
- Компьютерный код
- TinySpline: C-библиотека с открытым исходным кодом для NURBS, B-сплайнов и кривых Безье с привязками для различных языков
- Библиотека C ++ для генерации функций Безье во время компиляции