Podręcznik Grafika komputerowa i wizualizacja
Rozdział 7. MODELOWANIE KRZYWYCH I POWIERZCHNI
7.5. Krzywe B-sklejane
Krzywa
B-sklejana jest definiowana jako kombinacja liniowa funkcji sklejanych o współczynnikach
odpowiadających punktom kontrolnym (punktom de Boora). Funkcje sklejane są
przedziałami stopnia m, co nie jest
związane z liczbą punktów tak jak w przypadku krzywych Béziera. Oznacza to
rzeczywiście uniezależnienie stopnia wielomianu opisującego krzywą (oczywiście
przedziałami w tym przypadku) od liczby punktów kontrolnych.
Krzywa B-sklejana opisana jest jako:
punkty kontrolne Pi nazywane są punktami de Boora.
Funkcje sklejane określa się
rekurencyjnie:

Funkcje
sklejane są przedziałami
wielomianami i mają następujące właściwości:


Rys.7.9. Przykłady
krzywych B-sklejanych. Zmiana położenia
punktów kontrolnych P0 i P1 powoduje
lokalne (tylko !) zmiany kształtu krzywej. Nie wpływa to na
kształt pozostałej części krzywej.
Zakłada się, że węzły ti są uporządkowane niemalejąco tzn. ti ≤ ti+1 co oznacza, że mogą istnieć równe węzły (wielokrotne). Przyjmuje się wtedy, że 0/0=0. Takie założenia generalnie definiują krzywą dla węzłów które nie musza być równoodległe. Jednocześnie możliwość dodania (wstawienie) węzła pomiędzy dwa już istniejące, lub zwielokrotnienia węzła daje dodatkowe możliwości wpływania na kształt krzywej. Czasami jednak rozpatruje się krzywe o węzłach równoodległych.
Istnieje algorytm de Boora i Coxa wyznaczania punktów krzywej B-sklejanej (analogiczny do algorytmu de Casteljau dla krzywej Béziera) [3]. Jeśli wyznaczanych jest wiele punktów krzywej to tańszym rozwiązaniem będzie obliczenie współczynników postaci naturalnej wielomianu w kolejnych podprzedziałach i skorzystanie z algorytmu Hornera.
Właściwości krzywych B-sklejanych
Pierwsza właściwość – zerowanie funkcji sklejanej poza przedziałem jest bardzo istotna
dla modelowania kształtu. Oznacza bowiem lokalność wpływu parametrów (rys.7.9).
Rozpatrzmy podprzedział
dla
niezerowe są tylko funkcje
o indeksach i=j-m, j-m+1, j-m+2, j . W takim przedziale wartość Q(t) , a tym samym kształt krzywej,
zależy tylko od punktów kontrolnych Pj-m
, Pj-m+1 , Pj-m+2 , … Pj . Z drugiej strony
punkt kontrolny Pi wpływa
jedynie na fragment krzywej odpowiadający
.
Indeks j zmienia się od 0 do m , natomiast i od 0
do n . Cały zakres takiej krzywej
definiują więc węzły: . Ale danych jest n+1 punktów kontrolnych (de Boora).
Punkty P0 , P1, P2 , … Pm definiują krzywą dla
, natomiast punkty Pn-m, Pn-m+1, Pn-m+2,…Pn definiują krzywą dla
. Węzły
oraz
nazywane są węzłami
brzegowymi. Jeśli krzywa jest otwarta, to znaczy
, i
oraz
to krzywa przechodzi
przez końcowe punkty kontrolne, czyli
.
Podobnie jak było w przypadku krzywych Béziera, styczne do krzywej w punktach końcowych mają kierunek końcowych odcinków łamanej kontrolnej. Dla krzywej zamkniętej przyjmuje się, że punkty de Boora i węzły kontrolne są cykliczne (Pn=P0).
Jest spełniony warunek wypukłej skorupki (krzywa zawiera się całkowicie w wypukłej skorupce zbudowanej na punktach kontrolnych), ale tylko w sąsiedztwie punktów !
Wymierne krzywe B-sklejane (NURBS)Wymierne krzywe B-sklejane (ang. Non-Uniform Rational B-Splines) to rozwiązanie, które łączy zalety krzywych Béziera i krzywych B-sklejanych. Krzywe te opisane są w sposób następujący:
Punkty Pi (de Boora ) są punktami kontrolnymi, wi są wagami tych punktów.
- Krzywe wymierne dają możliwość wykreślenia dowolnej krzywej stożkowej.
- Konstrukcja wykorzystująca funkcje sklejane pozwala opisywać krzywą wielomianami, których stopień jest niezależny od liczby punktów kontrolnych.
- Wpływ punktu kontrolnego na kształt krzywej istnieje tylko w zakresie lokalnym.
- Dodatkowo wagi każdego punktu kontrolnego pozwalają na precyzyjne zmiany kształtu krzywej (też lokalnie).
- Krzywe wymierne są niezmiennicze względem przekształceń obrotu, skalowania i przesunięcia oraz przekształcenia perspektywicznego punktów kontrolnych.