Главная > Разное > Кривые и поверхности на экране компьютера
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

3.5. Другие сплайновые кривые

3.5.1. Интерполяционные кубические кривые Эрмита

По заданным вершинам и не нулевым векторам (элементарная) кубическая кривая Эрмита определяется при помощи векторного уравнения, имеющего следующий вид:

Матричная запись параметрических уравнений, описывающих элементарную кубическую кривую Эрмита, -

где

Матрица называется базисной матрицей кубической кривой Эрмита, а матрица ее геометрической матрицей.

Касательный вектор элементарной кубической кривой Эрмита в концевой точке совпадает с заданным вектором , а в концевой точке с вектором (рис. 3.28).

При линейной замене параметра

преобразующей единичный отрезок [0, 1] в промежуток форма элементарной кривой Эрмита изменяется. Для ее сохранения

Рис. 3.28

необходимо заменить векторы на

соответственно.

Кроме предложенных форм записи элементарной кривой Эрмита используются и другие.

Запись элементарной кубической кривой Эрмита

в форме Безье -

где кубические многочлены Бернштейна;

в форме Эрмита -

где - кубические многочлены Эрмита,

Замечание

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

Составные кубические кривые Эрмита

(Составной) кубической кривой Эрмита, определяемой массивом

и парой не нулевых векторов называется кривая которую можно представить в виде объединения элементарных кубических кривых Эрмита

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

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

Единая параметризация

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

Наиболее простой является параметризация с равноотстоящими целочисленными узлами. Для массива из опорных вершин составная кубическая эрмитова кривая строится из элементарных фрагментов. Если каждый из них определен на единичном отрезке, то длина общего промежутка изменения параметра должна быть равной Взяв за начальную точку, получаем отрезок . В этом случае узлы параметризации определяются по формуле

Описанный выбор отрезка параметризации позволяет записать уравнение составной кубической эрмитовой кривой у следующим образом:

где

- параметрическое векторное уравнение элементарной кубической кривой Эрмита

Свойства составной кубической кривой Эрмита

Составная кубическая кривая Эрмита, порожденная массивом

и парой не нулевых векторов :

1+ является -гладкой кривой (имеет непрерывную кривизну);

2+ проходит через вершины в точках стыка элементарных кривых выполняются равенства

(рис. 3.29);

Рис. 3.29

3+ касательный вектор во внутренней вершине однозначно определяется через вершины массива и касательные векторы в концевых вершинах;

4+ не лежит в выпуклой оболочке, порожденной заданным массивом;

5+ изменение одной вершины в массиве или одного из касательных векторов в концевых вершинах массива приводит к изменению всей кривой;

6+ при добавлении в массив одной вершины возникает необходимость пересчета всех параметрических уравнений;

7+ составная кубическая кривая Эрмита аффинно-инвариантна;

8- заданные векторы однозначно определяют составную кубическую кривую Эрмита, не давая возможности хоть как-то влиять на ее форму;

9- кубическая кривая Эрмита проективно-неинвариантна. Замечание

При помощи элементарных кубических кривых Эрмита составную кривую можно построить по заданному массиву

и произвольному набору не нулевых векторов

Каждая четверка задает элементарную эрмитову кривую, которая описывается матричным параметрическим уравнением вида

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

Программная реализация

Описанный алгоритм реализован в виде функции на языке С. Обращение к ней имеет следующий вид:

(см. скан)

Приведем полностью текст этой программы.

(см. скан)

(см. скан)

Приведем пример использования функции для построения плоской сплайн-кривой.

(см. скан)

Текст программы находится в файле в поддиректории на дискете, которую можно приобрести в издательстве "Диалог-МИФИ". Подробную информацию об именах файлов из этой директории и их содержании можно найти в файле из директории SPLINES этой дискеты и в приложении В нашей книги.

<< Предыдущий параграф Следующий параграф >>
Оглавление