Читать в оригинале

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


5-11 ПОДГОНКА В-СПЛАЙНОВ

В предыдущем разделе рассматривалось построение В-сплайна по определяющему многоугольнику. Сейчас нам нужно найти многоугольник, порождающий В-сплайн, для заданного множества точек кривой, как показано на рис. 5-55.

Точка, лежащая в В-сплайне, должна удовлетворять уравнению (5-83). Запишем уравнение (5-83) для всех  заданных точек

,

,

,

где , или в матричной форме

,                       (5-115)

где

,

,

.

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

         .                    (5-116)

В этом случае В-сплайн проходит через все заданные точки, т. е. достигается точная подгонка. Кривая на всем протяжении  непрерывна, но при этом она может быть недостаточно гладкой на вид и иметь нежелательные изгибы.

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

347.jpg

Рис. 5-55 Построение многоугольника В-сплайна для заданного множества точек.

Вершины определяющего многоугольника, сглаживающего кривую заданы условием

,

и

.                      (5-117)

Оба метода подразумевают, что матрица  известна. Базисные функции  и, следовательно, матрицу  можно получить, если задан порядок В-сплайна , количество точек многоугольника , а также величина параметра вдоль кривой. При соблюдении условия  порядок и количество вершин произвольны.

Величина параметра  для каждой заданной точки - это мера расстояния до точки вдоль В-сплайна. Удобна аппроксимация параметра с помощью длин хорд между заданными точками; в частности, для  точек величина параметра в точке

,          .

Максимальное значение параметра  обычно выбирается в качестве максимальной величина узлового вектора. Подобные методы затрагиваются в работах [5-15] и [5-22].

Для открытого равномерного узлового вектора с  кратными вершинами на концах кривая Безье получается при .

Рассмотрим пример.

Пример 5-17 Подгонка В-сплайна

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

Сначала найдем длины хорд.

,

,

,

и

.

Итак

.

Для пятиугольника максимальное значение узлового вектора у В-сплайна третьего порядка . Здесь  на единицу меньше количества вершин многоугольника. Узловой вектор с кратностью  на концах имеет вид

Уравнение (5-115) с этими значениями выглядит следующим образом:

.

Решим относительно

.

На рис. 5-56а изображены исходные точки, рассчитанные вершины многоугольника и кривая.

Для четырехугольника узловой вектор с кратностью  на концах:

.

350.jpg

Рис. 5-56 Результаты для примера 5-17. (a) Пятиугольник; (b) четырехугольник.

Матрица :

.

Умножим на  и обратим ее:

.

Тогда из уравнения (5-117) получим

.

На рис. 5-56b изображены исходные точки, рассчитанные вершины многоугольника и кривая.

Этот метод допускает произвольное расположение всех точек определяющего многоугольника в трехмерном пространстве, но иногда бывает удобно ограничиться плоскостью, например при подгонке В-сплайна под заданный контур корабля. В работе [5-26] приведен соответствующий метод как для кривых, так и для поверхностей. Его сущность состоит в том, что итеративно вычисляется параметр для фиксированной координаты до тех пор, пока значение на кривой при величине параметра, вычисленной по подогнанному многоугольнику, не попадает в некоторую окрестность фиксированного значения, т.е. . Подгонка получается менее точной, но более удобной для модификаций.

 



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