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

3.5.2. Сплайновые кривые Catmull-Rom

По заданному массиву

(элементарная) онлайновая кривая Catmull-Rom определяется при помощи векторного уравнения, имеющего следующий вид:

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

где

Матрица называется базисной матрицей сплайна Catmull-Rom.

Рис. 3.30

Касательная к элементарной сплайновой кривой Catmull-Rom в концевой точке параллельна отрезку а в концевой точке отрезку (рис. 3.30).

Составные сплайновые кривые Catmull-Rom

(Составной) стайновой кривой Catmull-Rom, определяемой массивом

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

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

где базисная матрица сплайна Catmull-Rom.

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

Тогда уравнение сплайновой кривой можно записать так:

где

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

Свойства составной сплайновой кривой Catmull-Rom

Составная кубическая сплайновая кривая Catmull-Rom, порожденная массивом

1+ является -гладкой кривой;

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

3+ касательный вектор в вершине параллелен отрезку, соединяющему

(рис. 3.31);

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

Рис. 3.31

5+ изменение одной вершины в массиве приводит к изменению только части кривой: при изменении вершины нужно пересчитать параметрические уравнения только четырех кривых:

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

7+ составная кубическая сплайновая кривая Catmull-Rom аффинно-инвариантна;

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

9- сплайновая кривая Catmull-Rom проективно-неинвариантна. Программная реализация

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

(см. скан)

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

(см. скан)

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

(см. скан)

(см. скан)

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

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