B-splajny i Beziers są równoległymi wynalazkami mniej więcej tego samego. Beziers próbuje zacząć od pomysłu dopasowania stycznych. B-splajny zaczynają się od idei funkcji podstawowych. Splajny NURB (a właściwie część racjonalna) to tylko uogólnienia splajnów B, dzięki czemu można opisać dokładne przekroje stożkowe *, ponieważ są one szczególnie interesujące w inżynierii.
Najpierw zacznijmy od prostej terminologii NURB Spline. Uzasadnienie tych krzywych jest nieco inne niż w przypadku Bziersa. Najpierw jest koncepcja zakresu. Rozpiętość byłaby w przybliżeniu równa całemu splajnowi Beziera, z wyjątkiem nurbów, które mogą mieć dowolną liczbę przęseł.
Zdjęcie 1 : Jedna sześcienna rozpiętość NURBS. Jest to nieco nietypowe sformułowanie
Każdy zakres jest tworzony przez stopień krzywej + 1 punkty kontrolne **. Każda krzywa może składać się z dowolnej liczby punktów. Każdy kolejny zakres ponownie wykorzystuje punkty z poprzedniego zakresu, upuszczając jeden punkt i zabierając jeszcze jeden punkt na liście. Tworzenie bardziej złożonych krzywych jest tak proste, jak dodanie większej liczby punktów do krzywej.
UWAGA : Krzywe obrazów są nieco nietypowo sparametryzowane, dlatego nie wyjaśniam, co to oznacza w następnej części. Kiedy podchodzę do koncepcji węzłów. Jest to po prostu łatwiejszy sposób wyjaśnienia, w jaki sposób krzywe łączą się ze sobą.
Zdjęcie 2 : 2 przęsła sześcienne po sobie, każde przęsło wykorzystuje 4 punkty. razem tworzą jedną krzywą. Dzielą się ze sobą większością punktów.
Do tej pory prawdopodobnie odpowiedzieliśmy na 2 pytania dotyczące dodawania złożoności. Chciałbym jednak dodać, że ten schemat zapewnia lepszą ciągłość niż krzywa Beziera. Dodatkowo można ustawić cykliczną tablicę punktów, która tworzy kadłub. Tworzenie zamkniętej krzywej.
Zdjęcie 3 : Zamknięta sześcienna powierzchnia NURBS ma tyle rozpiętości, ile punktów. Każdy kolor ma jedną rozpiętość.
Parametryzacja
Do tego momentu można powiedzieć, że łączenie przęseł jest sztuczką, podobnie jak „szycie” krzywych Beziera. Ale jest różnica. Krzywa jest parametryzowana na całej długości. Zatem krzywe nie są oddzielne, nie interpolują od 0 do 1 na każdym przęsle, jak to robi Beziers. Zamiast tego podstawowa krzywa ma zakres parametrów, który można dostosowywać. Parametr jest przechowywany w czymś zwanym węzłem, a każdy węzeł może mieć dowolną rosnącą wartość w sekwencji. Możesz więc sparametryzować cały zakres krzywych u do 0–1 lub od 0 do 12. Parametryzacja również nie musi być jednorodna.
Ta parametryzacja zmienia sposób kształtowania krzywej. Dlaczego miałoby to być przydatne? Cóż, możesz dostosować napięcie wzdłuż krzywej dla jednego. Lub możesz zakodować długość krzywej do parametru U. Jednym ze szczególnych zastosowań jest sprawienie, aby krzywa NURBS zachowywała się jak krzywa Beziera albo całkowicie, albo częściowo (na przykład beziera na końcach, ale nie w środku).
Zdjęcie 4 : Te same punkty różnych sekwencji węzłów. Zielona krzywa NURBS odpowiada krzywej Beziera, która ma zakres parametrów 0-2 zamiast 0-1
Ok, więc jakie są węzły? Są to po prostu zakresy funkcji podstawowych. Ponieważ sześcienny b-splajn z 4 punktami ma 4 funkcje interpolacji, potrzebuje 8 węzłów. Można narysować linię tylko w obszarach, w których 3 funkcje nakładają się i sumują do 1.0.
Zdjęcie 5 : 2 różne funkcje podstawowe, podobne do modelu Béziera i jednolita parametryzacja segmentów, rozpiętość do zakresu 0-1.
A teraz głównie opisaliśmy odpowiedź na pytanie 1. Zakres nie jest zdefiniowany, możesz rozciągać funkcje podstawowe według własnego uznania. I na koniec wektor węzłów po prostu wytwarza zakresy parametrów dla funkcji podstawowych. Jest jeszcze jedna rzecz, która rządzi kształtem krzywej i jest to wektor ciężaru. Ale to inna historia do opowiedzenia gdzie indziej.
* To uzasadnienie w tym przypadku oznacza, że krzywa NURBS nie musi być wielomianem, ponieważ nie można opisać okręgu za pomocą wielomianów.
** Można zdefiniować inne rodzaje punktów.