logo
Компьютерная графика / МАШ_ГРАФИКА

§ 3. Аппроксимация при помощи кривых и поверхностей Безье

Многочлены Безье используются для приближённой пара-метрической аппроксимации в том случае, когда нужно провести плавную кривую, проходящую вблизи множества точек – ориентиров. Французский математик Безье разрабо-тал их, выполняя исследования для фирмы «Рено».

В многочленах Безье в качестве базисных функций используются полиномы Бернштейна

108

B(m,p,i)=Ci m *pi * (1-p)m-i (5.13),

где Сim = m! / [i! (m-i)!] - число сочетаний из i по m .

Полиномы Бернштейна могут быть интерпретированы, как слагаемые в биноме Ньютона следующего вида:

1m = [p + (1-p)] m = p m + mp m-1 (1-p) + 0,5m(m-1)pm-2(1-p)2+ . . . + m p (1-p) m-1+ (1-p) m

Допустим, заданы m+1 упорядоченная точка – ориентир P0 , P1,…,Pm на плоскости 0xy. Координаты каждой точ-ки Pi = (xi, yi) .Ломаная, которая последовательно соединяет

Рис.5.5

точки P0, …,Pm (Рис.5.5), называется опорной:

Многочлен Безье вводится следующим образом:

Его можно представить как приведенный выше бином Ньютона, у которого каждое i-ое слагаемое умножается на точку Pi. Полиномы Бернштейна являются базисными функциями. Параметр кривой р изменяется на кривой в пределах 0 р 1.Уравнение справедливо для точек любой размерности – и для плоских и для пространственных.

109

Примеры:

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

  1. Кривая Безье проходит через первую и последнюю точку кривой:P(0)=P0 , P(1)=Pm. Во внутренних точках кривой 0 < p <1.

  2. В точках P(0)=P0 , P(1)=Pm кривая касается, соответ-ственно, отрезков P0P1 , Pm-1Pm опорной ломаной.

  3. Точность приближения многочлена Безье к точкам – ориентирам можно сколь угодно увеличить, вводя крат-ные точки, когда в одной физической точке распола-гается не одна , а несколько точек - ориентиров.

  4. Сумма коэффициентов в кривых Безье всегда равна 1. Это следует из вышеприведенного бинома Ньютона.

На Рис.5.7 показано изменение формы многочлена Безье при кратности средней точки , равной 1,2,3 (кривые 1,2,3). Если в каждой точке-ориентире кратность устремить к бес-конечности, то многочлен Безье в пределе будет стремиться к опорной ломаной.

110

Поверхности Безье, как и кривые, используются в тех случаях, где требуется не точное прохождение поверхности через множество заданных пространственных точек, а получение гладких поверхностей эстетичного вида, проходящих вблизи этих точек. Они определяются как тензорное произведение двух полиномов Безье, с использованием двух параметров u и v :

где {Рi j } - двумерный список точек в пространстве, с помощью которых задаётся поверхность, а (m+1) и (n+1) – количество точек по u и v.

Поверхность Безье, как и кривая, точно проходит только через крайние (угловые) точки заданной матрицы. Например, для m=n=2 уравнение поверхности примет вид:

111

где — матрица из координат опорных точек.

Рис 5.8

Для визуализации поверхности проводятся линии уровня. Линии уровня по u описываются уравнением:

112

где v0=const, 0 ≤ u ≤ 1.

Линии уровня по v вводятся аналогично.

Программы на языке AutoLISP для построения плоской и пространственной кривой Безье в среде AutoCAD даны в Приложении (bez_2d, bez_3d) . Функция BEZP на языке Autolisp для построения линий уровня поверхности Безье и проекций её линий уровня на плоскость z=0 , а также соответствующая отладочная функция приведены в Приложении.

Задачи.

1. Написать программу, рекурсивно вычисляющую для заданного m последовательность чисел сочетаний С0 m ,

С1 m , С2 m ,…, Сm-1 m , Сm m.

2. C помощью программы bez_2d смоделировать плоские кривые, близкие по форме к а) цифре “8”, б) цифре “3”, в) цифре “6”, г) букве “с”, д) букве “е”, д) букве “s”.

113