✏️ Bézier, B-splajn i NURBS
Krzywe parametryczne stojące za każdą grafiką wektorową i każdym krojem pisma. Przeciągaj punkty kontrolne, obserwuj rusztowanie de Casteljau, zmieniaj stopień splajnu i wagi NURBS oraz zbuduj dokładny okrąg.
Podobne symulacje
O tej symulacji
Ta symulacja pozwala budować i kształtować krzywe Béziera, B-sklejane (B-spline) i NURBS, przeciągając punkty kontrolne. Krzywe Béziera są obliczane na żywo za pomocą rekurencyjnego algorytmu de Casteljau, natomiast krzywe B-sklejane i NURBS są obliczane za pomocą funkcji bazowych Coxa–de Boora na obciętym wektorze węzłów. NURBS dodają dla każdego punktu wagę, która przyciąga krzywą w stronę cięższych punktów i — przy odpowiednich wagach i niejednorodnym wektorze węzłów — może dokładnie odwzorować łuk okręgu, czego zwykłe krzywe Béziera i B-sklejane nigdy nie potrafią.
🔬 Co przedstawia
Dla krzywych Béziera rusztowanie de Casteljau wielokrotnie interpoluje liniowo między punktami kontrolnymi przy parametrze t, widocznie zapadając się poziom po poziomie do punktu na krzywej. Dla krzywych B-sklejanych i NURBS krzywa jest budowana z funkcji bazowych Coxa–de Boora obliczanych na obciętym wektorze węzłów, który sam również można wyświetlić. Przełącznik koloru według t przebarwia krzywą wzdłuż jej zakresu parametru, a ustawienie „Dokładny okrąg” pokazuje 9-punktowy wymierny NURBS z naprzemiennymi wagami 1 i √2⁄2, kreślący matematycznie doskonały okrąg.
🎮 Jak korzystać
Wybierz typ krzywej (Bézier, B-sklejana lub NURBS), a następnie przeciągaj puste kwadratowe punkty kontrolne, aby kształtować krzywą, lub kliknij puste miejsce, aby dodać nowy punkt. Suwak stopnia (1–5) ustawia stopień krzywej sklejanej, parametr t (0–1) przesuwa podświetlony punkt wzdłuż krzywej lub steruje rusztowaniem de Casteljau, a suwak wagi (0,1–8) kształtuje krzywe NURBS wokół wybranego punktu. Automatyczne przemiatanie animuje t automatycznie, a gotowe ustawienia wczytują krzywą S, pętlę B-sklejaną, dokładny okrąg NURBS lub ćwiartkowy łuk NURBS.
💡 Czy wiesz, że?
Okrąg NURBS to nie przybliżenie — przy dokładnie odpowiednich punktach kontrolnych, wagach 1 i √2⁄2 na przemiennych narożnikach kwadratopodobnego wielokąta i wektorze węzłów z powtórzonymi węzłami wewnętrznymi (krotność 2), wymierne funkcje bazowe odtwarzają idealny łuk okręgu. Dlatego to właśnie NURBS, a nie zwykłe krzywe Béziera czy B-sklejane, są standardem reprezentowania okręgów, elips i innych krzywych stożkowych w oprogramowaniu CAD.
Najczęściej zadawane pytania
Czym jest krzywa Béziera i jak działa algorytm de Casteljau?
Krzywa Béziera to gładka krzywa zdefiniowana przez zbiór punktów kontrolnych, przy czym sama krzywa zwykle dotyka tylko pierwszego i ostatniego punktu, będąc „przyciąganą” w stronę pozostałych. Algorytm de Casteljau wyznacza punkt na krzywej przy parametrze t, wielokrotnie wykonując interpolacje liniowe: najpierw między każdą parą sąsiednich punktów kontrolnych, potem między tymi wynikami, i tak dalej, aż pozostanie jeden punkt. Ten rekurencyjny proces geometryczny jest numerycznie stabilny i dokładnie to wizualizują kolorowe linie rusztowania w symulacji.
Czym jest krzywa B-sklejana i czym różni się od krzywej Béziera?
Krzywa B-sklejana jest zbudowana z wielu odcinków wielomianowych połączonych gładko, sterowanych wektorem węzłów, który określa, gdzie zaczyna i kończy się każdy odcinek — w przeciwieństwie do pojedynczej krzywej Béziera, będącej jednym wielomianem na całym swoim zakresie. Oznacza to, że krzywa B-sklejana może mieć wiele punktów kontrolnych bez dowolnego wzrostu stopnia krzywej, a przesunięcie jednego punktu kontrolnego wpływa tylko na lokalny fragment krzywej, a nie na cały jej kształt. Suwak stopnia w tej symulacji kontroluje, ile sąsiednich punktów kontrolnych wpływa na każdy odcinek krzywej.
Co oznacza skrót NURBS i do czego służą wagi?
NURBS oznacza Non-Uniform Rational B-Spline (niejednorodna wymierna krzywa B-sklejana): „wymierna”, ponieważ każdy punkt kontrolny ma wagę skalującą jego wpływ, a „niejednorodna”, ponieważ odstępy w wektorze węzłów nie muszą być równe. Zwiększenie wagi punktu kontrolnego przyciąga krzywą silniej w jego stronę, jakby miał większą „grawitację”, natomiast waga 1 dla każdego punktu sprawia, że krzywa NURBS zachowuje się dokładnie jak zwykła krzywa B-sklejana. Ta dodatkowa elastyczność pozwala krzywym NURBS reprezentować kształty, takie jak prawdziwe okręgi i elipsy, których krzywe czysto wielomianowe nie potrafią odwzorować.
Jak NURBS może dokładnie odwzorować okrąg?
Okrąg jest krzywą stożkową, a jego dokładne odwzorowanie wymaga wymiernych (ważonych) funkcji bazowych, a nie zwykłych wielomianów — dokładnie to zapewnia NURBS. Ustawienie „Dokładny okrąg” w tej symulacji wykorzystuje dziewięć punktów kontrolnych ułożonych w kwadratopodobny wielokąt z naprzemiennymi wagami 1 i √2⁄2 (cos 45°), połączonych z wektorem węzłów, który powtarza pewne węzły, tworząc ostre złączenia między czterema ćwiartkowymi łukami okręgu. Wynikiem jest matematycznie doskonały okrąg, a nie tylko bliskie przybliżenie wielokątem.
Czym jest wektor węzłów i dlaczego ma znaczenie?
Wektor węzłów to niemalejący ciąg wartości parametru, który określa, gdzie zaczyna i kończy się każdy odcinek wielomianowy krzywej B-sklejanej lub NURBS oraz jak gładko odcinki łączą się w każdym węźle. „Obcięty” wektor węzłów, używany domyślnie w tej symulacji, powtarza pierwszy i ostatni węzeł wystarczająco wiele razy, aby krzywa faktycznie zaczynała i kończyła się w pierwszym i ostatnim punkcie kontrolnym, tak jak robi to krzywa Béziera. Powtórzenie węzła wewnętrznego (jak w ustawieniu dokładnego okręgu) zmniejsza gładkość krzywej w tym miejscu, co jest właśnie sposobem tworzenia ostrych przejść między łukami okręgu.