5-11 ПОДГОНКА В-СПЛАЙНОВВ предыдущем разделе рассматривалось построение В-сплайна по определяющему многоугольнику. Сейчас нам нужно найти многоугольник, порождающий В-сплайн, для заданного множества точек кривой, как показано на рис. 5-55. Точка, лежащая в В-сплайне, должна удовлетворять уравнению (5-83). Запишем уравнение (5-83) для всех заданных точек , , , где , или в матричной форме , (5-115) где , , . При матрица квадратная, и определяющий многоугольник вычисляется непосредственно обращением матрицы, т.е. . (5-116) В этом случае В-сплайн проходит через все заданные точки, т. е. достигается точная подгонка. Кривая на всем протяжении непрерывна, но при этом она может быть недостаточно гладкой на вид и иметь нежелательные изгибы. Если указать меньшее число вершин многоугольника, чем количество заданных точек, т.е. , кривая будет более гладкой. При этом матрица становится неквадратной, и можно найти только общее решение. Воспользуемся тем, что произведение матрицы на транспонированную всегда дает квадратную матрицу (см. разд. 3-31). Рис. 5-55 Построение многоугольника В-сплайна для заданного множества точек. Вершины определяющего многоугольника, сглаживающего кривую заданы условием , и . (5-117) Оба метода подразумевают, что матрица известна. Базисные функции и, следовательно, матрицу можно получить, если задан порядок В-сплайна , количество точек многоугольника , а также величина параметра вдоль кривой. При соблюдении условия порядок и количество вершин произвольны. Величина параметра для каждой заданной точки - это мера расстояния до точки вдоль В-сплайна. Удобна аппроксимация параметра с помощью длин хорд между заданными точками; в частности, для точек величина параметра в точке , . Максимальное значение параметра обычно выбирается в качестве максимальной величина узлового вектора. Подобные методы затрагиваются в работах [5-15] и [5-22]. Для открытого равномерного узлового вектора с кратными вершинами на концах кривая Безье получается при . Рассмотрим пример.
Этот метод допускает произвольное расположение всех точек определяющего многоугольника в трехмерном пространстве, но иногда бывает удобно ограничиться плоскостью, например при подгонке В-сплайна под заданный контур корабля. В работе [5-26] приведен соответствующий метод как для кривых, так и для поверхностей. Его сущность состоит в том, что итеративно вычисляется параметр для фиксированной координаты до тех пор, пока значение на кривой при величине параметра, вычисленной по подогнанному многоугольнику, не попадает в некоторую окрестность фиксированного значения, т.е. . Подгонка получается менее точной, но более удобной для модификаций.
|