Основи нерівномірного раціонального B-сплайна (NURBS)


9

Я намагаюся зрозуміти криві NURBS (поверхонь пізніше!), Але у мене є проблеми з розумінням самих основ її внутрішньої роботи. Може хтось, будь ласка, пояснить мені кілька речей? Оскільки я походжу з кривих Безьє, порівняння між цими двома було б особливо корисним.

  1. «Раціональна основа функція» виглядає трохи - трохи , як Бернштейн поліном (раціональний) кривої Безьє. Чи параметр uтакож іде від 0 до 1?

  2. Як «додати деталі» до кривої? Я маю на увазі, що, якби мені потрібно було описати більш складну фігуру, я б просто "зшив" кілька Безьє разом. Або рідше збільшуйте ступінь. Я розумію, що я можу також збільшити ступінь NURBS, і поставити кілька кривих NURBS поруч, але чи так це потрібно робити?

  3. Стаття у Вікіпедії, принаймні, мені здається не дуже зрозумілою щодо цього "вузлового вектора". Що це все-таки?


Це трохи забагато матеріалів для одного питання. Я по суті можу зібрати свою вступну лекцію з цього приводу за кілька годин. Трохи вникаючи в деталі використання De casteljanu та алгоритму де-бора, знадобиться мені занадто багато часу.
joojaa

1
Тож я хотів би, щоб питання 3, 5 і, можливо, 6 розділилися як окремі питання, щоб зробити відповіді та зрозуміти більше за розміром їжі.
joojaa

@joojaa Звичайно, я можу розділити питання, лише на секунду ...
Ecir Hana

1
Тож питання 3 , 5 і 6 були розділені на окремі запитання.
Ecir Hana

Відповіді:


7

B-Splines і Beziers - паралельні винаходи більш-менш одного і того ж. Де Безьє намагаються виходити з ідеї підключення дотичних. B-Splines починають з ідеї базових функцій. NURB Splines (або фактично раціональна частина) - це лише узагальнення B-Splines, тому ви можете описати точні конічні перерізи *, оскільки вони представляють особливий інтерес в техніці.

Спочатку почнемо з простої термінології NURB Spline. Обґрунтування цих кривих дещо інше, ніж для Безьє. Спочатку існує поняття промаху. Проміжок приблизно буде еквівалентний цілому Безьє, за винятком того, що в медсестер ви можете мати будь-яку кількість прольотів.

введіть тут опис зображення

Зображення 1 : один кубічний проміжок NURBS. Це трохи нетипово у формулюванні

Кожен проміжок формується за ступенем кривої + 1 контрольні точки **. Кожна крива може складатися з будь-якої кількості точок. Кожен послідовний проміжок повторно використовує бали, утворюючи попередній проміжок, скидаючи одну точку та беручи на одну точку більше у списку. Тому зробити складніші криві так само просто, як просто додати більше кривих до кривої.

ПРИМІТКА . Криві зображень трохи нетипово параметризовані, невірно поясніть, що це означає в наступному розділі. Коли я беру концепцію вузлів. Це просто простіший спосіб пояснити, як криві склеюються.

введіть тут опис зображення

Зображення 2 : 2 кубічні проміжки один за одним, кожен проміжок використовує 4 бали. разом вони утворюють одну криву. Вони ділять більшість балів один з одним.

На сьогодні ми вже, мабуть, відповіли на 2 питання щодо додавання складності. Але я хотів би додати, що ця схема забезпечує кращу безперервність, ніж крива Безьє. Додатково ви можете зробити точковий масив, який формує корпус циклічним. Формування замкнутої кривої.

введіть тут опис зображення

Зображення 3 : Закрита кубічна поверхня NURBS має стільки прольотів, скільки крапок. Кожен колір - один проміжок.

Параметризація

До цього моменту можна було просто сказати, що обв'язування прольотів - це трюк так само, як "зшивання" кривих Безьє. Але є різниця. Крива параметризована по її довжині. Таким чином, криві не є окремими, вони не інтерполюють форму від 0 до 1 на кожному прольоті, як це роблять Безьє. Натомість нижня крива має діапазон параметрів, що може бути зручним для роботи. Параметр зберігається у тому, що називається вузлом, і кожен вузол може мати довільне збільшується значення в послідовності. Таким чином, ви можете параметризувати всі криві u діапазону від 0 - 1 або 0 до 12. Параметризація також не повинна бути рівномірною.

Ця параметризація змінює форму кривої. Чому це було б корисно? Ну ви можете відрегулювати натяг по кривій для одного. Або ви можете кодувати довжину кривої до параметра U. Одне особливе використання полягає в тому, щоб змусити криву НУРБС діяти як криву Безьє повністю або частково (безьє, як у кінцях, але не посередині, наприклад).

введіть тут опис зображення

Зображення 4 : Однакові точки різних послідовностей вузлів. Зелена крива NURBS відповідає кривій Безьє, що має діапазон параметрів 0-2 замість 0-1

Гаразд, що таке вузли? Вони просто діапазони базових функцій. Оскільки кубічний b-сплайн з 4 балами має 4 інтерполяційні функції, йому потрібно 8 вузлів. Лише можна накреслити лише ті області, де 3 функції перекриваються та складають до 1,0.

введіть тут опис зображення

Зображення 5 : 2 різні основні функції, подібні до безмежжя та рівномірної параметризації сегмента, поширюються на діапазон 0-1.

А тепер ми здебільшого описали відповідь на питання 1. Діапазон не визначений, ви можете розтягнути основні функції, як вважаєте за потрібне. І нарешті, вузольний вектор просто виробляє діапазони параметрів для базових функцій. Є ще одна річ, яка регулює форму кривої, і це вектор ваги. Але це ще одна історія, яку слід розповісти в іншому місці.


* У цьому випадку це раціонально означає, що крива NURBS не повинна бути многочленом, як ви не можете описати коло з многочленами.

** Можна визначити інші типи точок.


щодо (*), криві Безьє мають ту саму проблему. Проблема полягає в тому, що криві (в обох випадках) визначаються як x = f (t), y = f (t). Однак ви також можете визначити одновимірну / явну / 1 розмірну криву (знову ж, в обох випадках) як y = f (x), використовуючи x замість t. У разі раціональних кривих, замість того, щоб представляти конічні перерізи, ви можете представляти синус і косинус (і більше, звичайно). NURBS / b-сплайни не особливі в цьому плані.
Алан Вулф

Я думаю, що ваше твердження про довжину неправильне (працює лише з лінійними функціями?), І не впевнений, як розрахунки довжини повинні відповідати вашим поясненням (хороша інформація, яку ви дали, просто скажіть!)
Алан Вулф

@AlanWolfe все одно видалили
joojaa

Найдивовижніші! Дякую велике, дуже гарне пояснення!
Ecir Hana

Опечатка, можливо? "Натомість нижня поверхня має налаштований діапазон параметрів. Параметр зберігається у тому, що називається вузлом, і кожен вузол може мати довільне значення, яке перевищує наступне." -> "Натомість нижня крива має настроюваний діапазон параметрів. Параметр зберігається у тому, що називається вузлом, і кожен вузол може мати довільне значення, яке перевищує попереднє ." До речі, ви можете, будь ласка, уточнити, що ви маєте на увазі під УФ-діапазоном? "УФ" має на увазі 2D ..?
Ecir Hana
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.