4. Krzywe B-sklejane i krzywe NURBS

4.3. Krzywe NURBS

Analogicznie jak w przypadku krzywych Béziera, uogólnieniem krzywych B-sklejanych są wymierne krzywe B-sklejane, składające się z wymiernych krzywych Béziera. Noszą one powszechnie obecnie używaną nazwę NURBS - jako skrót od angielskich słów Non Uniform Rational B-Splines (Niejednostajne Wymierne krzywe B-sklejane). Niejednostajne - bo węzły mogą być dowolnie rozmieszczone. Modyfikując węzły można zmienić kształt krzywej i zmniejszyć ciągłość krzywej w punktach sklejania. Wymierne - bo punktom kontrolnym można przypisać wagi. Modyfikując wagi można uzyskać dodatkowe możliwości modyfikacji kształtu krzywej bez przesuwania wierzchołków.

Reprezentacja krzywych NURBS

  • Wierzchołki kontrolne
  • Stopień krzywej
  • Wagi wierzchołków kontrolnych
  • Ciąg  węzłów odpowiadających punktom sklejenia krzywych, z węzłami wielokrotnymi na krańcach

Dla krzywych NURBS 2 i 3 stopnia algorytm Boehma jest uogólnieniem algorytmu dla krzywych B-sklejanych: podział odcinków nie odbywa się już na 2 lub 3 równe części, lecz jest zależny od wag i przyrostów węzłów (Rysunek 50).

w_C=\frac{w_A\left(d_{i+1}+d_{i+2}\right)+w_B\cdot d_1}{d_i+d_{i+1}+d_{i+2}}\ \ \ \ \ \ \ \ \ \ \ \ \ w_D=\frac{w_Ad_{i+2}+w_B(d_i+d_{i+1})}{d_i+d_{i+1}+d_{i+2}}
\overline{\mathbf{C}}=\frac{\overline{\mathbf{A}}w_A\left(d_{I+1}+d_{i+2}\right)+\overline{\mathbf{B}}w_Bd_i}{w_C(d_i+d_{i+1}+d_{i+2})}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \overline{\mathbf{D}}=\frac{\overline{\mathbf{A}}w_Ad_{i+2}+\overline{\mathbf{B}}w_B(d_i+d_{i+1})}{w_D(d_i+d_{i+1}+d_{i+2})}

Rysunek 50. Reguły podziału odcinka z wagami na końcach w stosunku di : di+1 : di+2. Jeśli odcinek dzielimy na 2 części, to di+2=0 i wyznaczamy tylko punkt C.

 

Rozbudowana Aplikacja nr 9, będąca uogólnieniem Aplikacji nr 8, pozwala na zapoznanie się z różnorodnymi możliwościami modelowania oferowanymi przez reprezentację NURBS i sprawdzenie, że wszystkie wymienione wyżej własności krzywych B-sklejanych są tu spełnione. Należy w szczególności zwrócić uwagę na możliwość modyfikacji węzłów i wprowadzania węzłów wielokrotnych (na rysunku taki węzeł jest zaznaczony na czerwono), co pozwala na uzyskanie styczności krzywej do boków wieloboku oraz ostrzy na krzywej. Węzły wewnętrzne na początku rozłożone są jednostajnie i odpowiadają punktom sklejania segmentów krzywej. Można je przesuwać, ustawiając pod nimi wskaźnik myszki i sklejać je ze sobą, uzyskując ich wielokrotność i obniżenie w tym węźle stopnia ciągłości krzywej.

 

Rysunek 51 – Aplikacja nr 9. Krzywe NURBS dowolnego stopnia k. Możemy zmieniać  stopień krzywej  i wagi poszczególnych wierzchołków. Po lewej stronie wyświetlają się funkcje B-sklejane (każda w innym kolorze) wraz z osią węzłów. Zmieniając suwakiem parametr obserwujemy (k+1) wartości funkcji B-sklejanych wpływających na wynikowy punkt poruszający się po krzywej.

 

Reprezentacja NURBS jest najbardziej ogólną i najbardziej zwięzłą formą zapisu krzywych parametrycznych. Stanowi podstawę formatów IGES i STEP, będących standardami zapisu danych o krzywych i powierzchniach.
Pojęcia reprezentacji NURBS, Béziera i B-sklejanej są bardzo często mylone ze sobą albo traktowane jako zupełnie od siebie niezależne, i to nieraz w literaturze zbliżonej do "fachowej", w tym nawet w dokumentacjach i opisach modelerów. Dlatego na zakończenie warto uzmysłowić sobie zależności pomiędzy różnymi formami definiowania krzywych podanymi powyżej. Wynikają one w sposób logiczny z zaprezentowanych i omówionych definicji:


 

Rysunek 52. Zależności pomiędzy różnymi rodzajami reprezentacji krzywych i powierzchni parametrycznych.

Jak widać, reprezentację Béziera należy zawsze traktować jako szczególny przypadek reprezentacji NURBS.