Powierzchnia NURBS

Krzywe matematyczne w grafice komputerowej

Krzywa Béziera

Aby zrozumieć jak funkcjonują krzywe i powierzchnie NURBS, musimy najpierw zapoznać się z krzywymi Béziera.

Są one krzywymi parametrycznymi, co oznacza, że każdy punkt należący do krzywej definiowany jest pewną funkcją liczby rzeczywistej będącej wspomnianym parametrem.
Krzywe Béziera dzielą się na krzywe wielomianowe i krzywe wymierne. Każda krzywa jest definiowana za pomocą łamanej kontrolnej, składającej się z punktów kontrolnych.

Następujący obrazek ukazuje przykładową krzywą Béziera (C), jej punkty kontrolne (1),(2),(3),(4), oraz jej łamaną kontrolna (P).

Krzywa Béziera

Krzywe wielomianowe

Krzywa Béziera definiowana jest za pomocą zestawu n + 1 punktów kontrolnych P0, P1, ..., Pn.

Kształ krzywej jest opisywany przez wielomiany, których stopień zależy od ilości punktów kontrolnych.

Przyjęło się stosowanie wielomianów Bernsteina, jako że punkty kontrolne są ich naturalnymi współczynnikami dzięki czemu nie trzeba wykonywać dodatkowych obliczeń.

Pierwszy i ostatni punkt zawsze znakują początek i koniec krzywej, natomiast punkty środkowe (jeśli istnieją) zazwyczaj nie leżą na krzywej.

Liniowe krzywe Béziera

Mając punkty P0 oraz P1, linowa krzywa Béziera jest odcinkiem pomiędzy nimi. Krzywa podana jest wzorem:

B(t) = P0 + t(P1 - P0) = (1 - t)P0 + tP1 , t ∈ [0,1]

i odpowiada interpolacji liniowej.

Kwadratowe krzywe Béziera

Kwadratową krzywą Béziera otrzymamy kreśląc funkcję B(t), mając punkty P0 ,P1 oraz P2.

B(t) = (1 - t)[(1 - t)P0 + tP1] + t[(1 - t)P1 + tP2] , t ∈ [0,1]

może być interpretowane jako interpolacja liniowa odpowiadających punktów na krzywej liniowej z P0 do P1 oraz z P1 do P2. Upraszczając wyrażenie otrzymamy:

B(t) = (1 -t)2P0 + 2(1 - t)tP1 + t2P2 , t ∈ [0,1]

Krzywa Béziera

Sześcienne krzywe Béziera

Cztery punkty P0 ,P1 ,P2 oraz P3 definiują sześcienną krzywą Béziera.

Może być ona określona jako liniowe połączenie dwóch kwadratowych krzywych Béziera, gdzie BPi,Pj,Pk(t) oznacza kwadratową krzywą Béziera zdefiniowaną przez punkty Pi,Pj,Pk:

B(t) = (1 - t)BP0,P1,P2(t) + BP1,P2,P3(t) , t ∈ [0,1]

Uproszczona wersja funkcji to:

B(t) = (1 -t)3P0 + 3(1 - t)2tP1 + 3(1 - t)t2P2 + t3P3 , t ∈ [0,1]

Narysuj własną sześcienną krzywą Béziera ustawiając punkty kontrolne kliknięciami myszy. Twoja przeglądarka nie obsługuje HTML5!

Krzywe Béziera o większej ilości punktów kontrolnych

Wzór na krzywą Béziera o większej niż 4 ilości punktów kontrolnych można zapisać jako:

Wzór na krzywą Béziera


Gdzie:

Wzór na symbol Newtona


Narysuj własną krzywą Béziera o nieograniczonej ilości punktów kontrolnych ustawiając punkty kontrolne kliknięciami myszy. Your browser does not support the HTML5 canvas tag.

Krzywe wymierne

Wymierne krzywe Béziera wprowadzają dające się regulować wartości wagowe punktów kontrolnych dla bardziej precyzyjnego manipulowania krzywą.

Każdy punkt kontrolny ma przypisaną wagę, która określa jak bardzo punkt "przyciąga" krzywą do siebie.

Wymierne krzywe


Mając zestaw n + 1 punktów kontrolnych Pi, wymierną krzywą Béziera można opisać jako:

Wymierne krzywe


Po uproszczeniu wzór wygląda następująco:

Wymierne krzywe


Do góry