11.6. ПРИМЕНЕНИЕ B-СПЛАЙНОВ В МАШИННОЙ ГРАФИКЕ
В-сплайны можно использовать для порождения кривых аналогично тому, как это делалось с помощью многочленов Безье Если — множество точек ориентиров, то сплайн можно определить следующим образом
Диапазон значений больше не должен ограничиваться сегментом [0,1] и точки склеивания должны задаваться несколько иначе, чем это было в случае многочленов Безье Отметим, что уравнение (11.23) эквивалентно двум парам уравнений
(11.12), причем точки ориентиры соответствуют коэффициентам этого уравнения а Очевидно, что представляет собой сумму векторов, умноженную на числа (-сплайны), сумма которых в свою очередь в силу теоремы 11.1 равна единице Следовательно, имеет место следующий результат
Утверждение 11.2. Сплайн лежит в выпуклой оболочке самое большее точек-ориентиров
При соответствующий многоугольник определяется точками ориентирами (Каждое значение сплайна лежит на прямой, соединяющей две точки) На рис 11.6,а приведены два примера для случая — заштрихованными треугольниками обозначена та часть плоскости, в которой располагается кривая
Рис. 11.6. Иллюстрация к утверждению 11.2 Заштрихованы те части плоскости, в которых должен располагаться квадратичный сплайн с заданными точками ориентирами Штриховые линии ограничивают часть плоскости, в которой должен располагаться многочлен Безье с теми же точками ориентирами
Наличие кратных точек вынуждает синтезируемую кривую проходить ближе к точкам-ориентирам, во многом аналогично тому, как это происходит в случае многочленов Безье На рис 11.6,б показано, что при наличие двойных точек обеспечивает прохождение кривой через них Можно было бы наложить более жесткие ограничения на расположение сплайна (см. пример 11.4), однако сравнение заштрихованных областей на рис. И б и выпуклой оболочки всех точек (штриховые линии) показывает, что -сплайны обеспечивают значительно более точное управление формой воспроизводимой кривой, чем многочлены Безье.
Преимущество уравнения (11.23) состоит в том, что сплайн Р может представляться трехмерным вектором, что обеспечивает получение таким способом пространственных кривых.
Можно предложить еще одну интерпретацию уравнения (11.23), если рассматривать как комплексные числа. В таком случае это просто комплексный сплайн
Эти две разновидности задания сплайна эквивалентны, поскольку комплексные числа допускают геометрическую интерпретацию (координата х соответствует действительной части, а координата у — мнимой). Представление в комплексной форме широко использовалось Кнутом при синтезе шрифта (см. разд. 11.8).
Остановимся теперь более подробно на свойствах сплайнов, представляемых с помощью В-сплайнов. Пусть -значения при имеет смысл рассматривать значения . В таком случае уравнение (11.23) можно переписать в следующем виде:
Если имеется лишь точек-ориентиров то значения соответствующего сплайна можно определять лишь для В общем случае Для того чтобы гарантировать прохождение сплайна через концевые точки, последние должны быть кратными. Если кратность точки равна то соответствующий сплайн при любых обстоятельствах проходит через нее. Выше это было показано геометрически, кроме того, это следует и из уравнения (11.24). Если то
В силу теоремы 11.1 член этого уравнения, заключенный в квадратные скобки, равен Из уравнения (11.5), кроме того, следует, что значения пропорциональны Обозначив через с соответствующий постоянный коэффициент пропорциональности, получаем
Из этого уравнения следует, что при Более того, при значения искомого сплайна попадают на прямую, соединяющую векторы
Для того чтобы лучше понять свойства сплайнов, целесообразно обратиться к более простым примерам. В случае равномерного расположения точек склеивания можно воспользоваться представлениями В-сплайнов с помощью уравнений (11.9) — (11.11) и нормированной переменной и. Выражение (11.8) предусматривает
Если точек-ориентиров лежат на прямой, то из утверждения 11.1 следует, что значения искомого сплайна также будут лежать на этой прямой. Уравнение (11.24) указывает, что последнее будет иметь место при
Для того чтобы строить замкнутые кривые, достаточно задать а Кроме того,
Пример 11.3. а. Рассмотрим девять точек, представленных на рис. 11.7; здесь — множества колли-неарных точек. По этим точкам требуется построить равномерно квадратичный сплайн. Для определения точек где воспользуемся уравнением (11.30а). Задав в уравнении получаем
или
Уравнение (11.316) определяет графический метод отыскания точек (см. рис. 11.7). Если эти точки коллинеарны, то, естественно, совпадает с
Рис. 11.7. Построение квадратичного сплайна, аппроксимирующего треугольник
Рис. 11.8. Построение квадратичного сплайна, аппроксимирующего квадрат
б. На рис. 11.8 представлен периодический сплайн, построенный по четырем точкам, образующим квадрат. Хотя этот сплайн выглядит как окружность, он окружностью не являются. Отношение длины радиуса этой «окружности», взятой по диагонали, к длинам ее радиусов, взятым по вертикали и горизонтали, составляет
Из уравнения (11.24) следует, что сплайны, построенные по точкам-ориентирам, в отличие от интерполяционных сплайнов локально зависят от самое большее точек.