Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коссак графіка.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

2.6.2. Базисні функції

Визначимо базисні функції . Якщо розглянути ділянку кривої, віддалену від конкретного вузла, то цей вузол не має на неї сильного впливу; якщо ж ми наближаємося, то вузол починає впливати на неї щораз більше. У разі віддалення від нього його дія знову зменшується.

На рис. 2.15 показано приклад базової функції, яка має максимальний ефект у деякій визначеній точці й гладко зменшується з віддаленням від точки. Крива на рис. 2.15 відображає, що найбільше значення майже 95 % при і приблизно 50 % для і .

Рис.2.15. Базисна функція для вектора заданого вузла

Тут кожний вузол має власну базисну функцію, наприклад, В-сплайн-крива, яка має вузлів матиме таких функцій, кожна з яких покриває деяку ділянку кривої.

Часто базисні функції мають однакову форму й охоплюють однакові інтервали часу. Проте інколе виникає потреба змінювати ширину інтервалів так, щоб деякі вузли мали вплив на більшу частину кривої, а інші – на меншу.

Для цього треба визначити ряд точок, які розділяють час на інтервали, Змінюванням відносних довжин інтервалів можемо змінювати час, у подовж якого кожна контрольна точка впливає на криву. Точки, які обмежують інтервали називаються вузлами, а впорядкований їхній список – вузловим вектором.

Наведемо ще деякі важливі характеристики, які виявляє набір базисних функцій.

  1. У будь-який час t, сумарне значення всіх базисних функцій становить у цілому одиницю.

  2. Якщо всі керівні точки мають позитивні ваги, то крива міститься в межах ділянки, відомої як опукла оболонка.

  3. За будь-якого t, не більше ніж k базисних функцій впливають на криву, де k - це порядок кривої.

  4. Крива порядку k визначена тільки там, де k базисних функцій відмінні від нуля.

2.6.3. Вузловий вектор

Вузловий вектор, довжина якого (n+k+1), уводиться для врахування власної кривини B-сплайн -кривих і є не спадною послідовністю цілих чисел - параметричних вузлів. Вузловий вектор визначений кількістю точок у ламаній, яку апроксимують, порядком кривої, а також наявністю складних (кратних) вузлів.

Наприклад, для кривої другого порядку, що задана чотирма вершинами (n+1=4), параметр =3-2+2=3. Довжина вузлового вектора (n+k+1)= 6. Повний вузловий вектор з кратністю 2 (бо крива другого порядку) на кожному кінці матиме вигляд [0,0,1,2,3,3]. Крива четвертого порядку, задана на багатокутнику з п’ятьма вершинами, матиме вузловий вектор [0 0 0 0 1 2 2 2 2]. Тут =4-4+2=2, довжина вектора(n+k+1)= 9, кратність на кожному кінці 4. Під час побудови B-сплайн-кривих можна збільшувати порядок кривої шляхом подвоєння, потроєння тощо, вузлів в одній і тій же вершині. Отже, якщо маємо чотири різні вершини для кривої другого порядку, то вузловий вектор, як ми вже довели, дорівнює [0,0,1,2,3,3]. Якщо ж два вузли збігаються в одній вершині, це означає, що один з відрізків ламаної має нульову довжину, а вузловий вектор зміниться до вигляду [0 0 1 1 2 2].

Якщо гладкості досягають уведенням похідних вищих порядків, то порядок кривої визначає, наскільки вона гладка. Наприклад, крива четвертого порядку є неперервною за першою і другою похідними, а також і за розміщенням точок уздовж усієї кривої.

Зазначимо, що B-сплайн-крива є поліномом степеня (k–1) на кожному інтервалі і всі її похідні до (k–2)-го порядку включно неперервні уздовж всієї кривої.

У разі врахування гнучкості задання кривих на основі B-сплайнів можна використовувати різні способи корекції форми кривої. Наприклад, можна змінити порядок (у межах 2 n+1) шляхом уведення кратних вершин або зміни кількості і положення кратних вершин у багатокутнику.