- Алгоритм де Кастельжо
-
В вычислительной математике алгоритм де Кастельжо, названный в честь его изобретателя Поля де Кастельжо — рекурсивный метод определения формы многочленов Бернштейна или кривых Безье. Алгоритм де Кастельжо также может быть использован для разделения кривой Безье на две части по произвольному значению параметра
.
Достоинством алгоритма является его более высокая вычислительная устойчивость по сравнению с прямым методом.
Содержание
Описание
Задан многочлен Бернштейна B степени n
где b — базис многочлена Бернштейна, многочлен в точке t0 может быть определен с помощью рекуррентного соотношения
Тогда определение
в точке
может быть определено в
шагов алгоритма. Результат
дан по:
Также, кривая Безье
может быть разделена в точке
на две кривые с соответствующими опорными точками:
Геометрическая интерпретация
Геометрическая интерпретация алгоритма де Кастельжо проста:
- Задана кривая Безье с опорными точками
. Соединив последовательно опорные точки с первой по последнюю, получаем ломаную линию.
- Разделяем каждый полученный отрезок этой ломаной в соотношении
и соединяем полученные точки. В результате получаем ломаную линию с количеством отрезков, меньшим на один, чем исходная ломаная линия.
- Повторяем процесс до тех пор, пока не получим единственную точку. Эта точка и будет являться точкой на заданной кривой Безье с параметром
.
Следующая иллюстрация демонстрирует этот процесс для кубической кривой Безье:
Следует заметить, что полученные в процессе построения промежуточные точки являются опорными точками для двух новых кривых Безье, в точности совпадающих с исходной, и в совокупности дающих исходную кривую Безье. Этот алгоритм не только определяет точку кривой в
, но и делит кривую на две части в
, а также предоставляет описание двух суб-кривых в форме Безье (в параметрическом представлении).
Описанный алгоритм справедлив для нерациональных кривых Безье. Для вычисления рациональных кривых в
, можно спроецировать точку в
; например кривая в трехмерном пространстве должна иметь опорные точки
и веса
спроецированные в весовые контрольные точки
. Затем обычно алгоритм переходит к интерполяции в
. Результирующие четырехмерные точки могут быть спроецированы обратно в трехмерное пространство с помощью перспективного деления.
В целом, операции с рациональными кривыми (или поверхностями) эквивалентны операциям с нерационалиными кривыми в проективном пространстве. Представление опорных точек как взвешенных часто бывает удобно для определения рациональных кривых.
Ссылки
См. также
Категории:- Алгоритмы
- Геометрические алгоритмы
- Вычислительная геометрия
- Компьютерная графика
- Математические основы компьютерной графики
- Численные методы
Wikimedia Foundation. 2010.