Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федорков Е.Д., Кольцов А.С. Геометрическое моделирование.doc
Скачиваний:
172
Добавлен:
02.05.2014
Размер:
2.73 Mб
Скачать

13.2.2. Анализ алгоритма кастельжо для произвольной кривой

Приведенные выражения для квадратичной параболы легко обобщаются на случай произвольной пространственной кривой -го порядка.

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

( 8 )

Отметим, что . Значениеопределяет точку со значением параметрана кривой Безье.

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

Рис. 13.6. Построение точки на кубической кривой с использованием повторяющейся линейной интерполяции

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

Произвольную точку кривой также можно вычислить с помощью полиномов Бернштейна:

( 9 )

Важно, что в случае это уравнение дает точку на кривой:

.

13.2.3. Обобщённый алгоритм для треугольной порции поверхности

Для определения точки, инцидентной треугольной порции поверхности, с заданными барицентрическими координатами используем обобщение линейной интерполяции для произвольной кривой -го порядка.

Дано:характеристический многогранник треугольной порции поверхностии точка в пространстве, заданная барицентрическими координатами.

Найти:точку, инцидентную заданной порции поверхности, с соответствующими барицентрическими координатами.

Алгоритм

    Для треугольной порции поверхности, ограниченной кривыми -го порядка, число точек характеристического многогранника (управляющих точек) вычисляется по формуле:

.

Введем некоторые обозначения:

,,,,,.

Произвольная точка с барицентрическими координатами , инцидентная заданной порции поверхности, определяется с помощью повторяющейся линейной интерполяции каждых трех точек характеристического многогранника:

,

(10)

где ,.

Последний шаг алгоритма дает искомую точку .

    Граничные кривые треугольной порции определяются соответствующими характеристическими ломаными. Одна из барицентрических координат произвольной точки на этих кривых равна 0. Подставим в уравнение (10) барицентрические координаты границ треугольной области:

,,.

Получим уравнения для определения точек на граничных кривых порции поверхности:

,.

,.

,.

    Сравнивая любое из полученных уравнений с уравнением (8), убеждаемся, что они эквивалентны. Следовательно, можно сделать вывод о том, что алгоритм, описываемый уравнением (10), является обобщением алгоритма для одномерного случая (8).

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

  1. Характеристический многогранник такой порции содержит 10 управляющих точек (рис. 13.7.):

.

  1. Сумма всех индексов каждой управляющей точки равна 3:

,,.

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

Рис. 13.7. Характеристический многогранник кубической треугольной порции поверхности

 

Рис. 13.8. Формирование треугольных массивов управляющих точек

Рис. 13.9. Иллюстрация работы алгоритма для треугольной кубической порции поверхности