Krzywa B-sklejana
Krzywa B-sklejana (ang. B-spline) – jedna z najczęściej stosowanych reprezentacji parametrycznych krzywych sklejanych. Angielska nazwa spline wzięła się z żargonu kreślarzy i odnosiła do długiej elastycznej metalowej taśmy, której używano do rysowania samolotów, samochodów, statków itp. Zawieszając odpowiednio dobrane obciążniki można było uzyskać krzywą o ciągłości geometrycznej drugiego rodzaju. Odpowiednikiem matematycznym spline jest krzywa B-sklejana trzeciego stopnia. Angielska nazwa krzywych B-sklejanych – B-spline – jest skrótem od basis spline function, co znaczy „funkcja bazowa łącznicy”.
Podstawy matematyczne
Krzywą B-sklejaną charakteryzują dwa parametry:
- – stopień sklejanych krzywych wielomianowych (w praktyce zwykle niewielki, wynosi 2, 3 lub 4, rzadziej więcej),
- – liczba podprzedziałów, na których definiowane są kolejne części krzywej.
Krzywe B-sklejane, podobnie jak inne krzywe parametryczne używane w grafice komputerowej, są wyznaczane przez ciąg punktów kontrolnych Krzywa taka jest reprezentowana przez krzywych wielomianowych stopnia (mówi się wówczas, że krzywa B-sklejana jest -tego stopnia), które łączone są z określoną ciągłością parametryczna, zazwyczaj
Krzywa jest określona na przedziale natomiast ciąg wartości dzieli ten przedział na podprzedziały, na których zdefiniowane są poszczególne krzywe wielomianowe. Wartości są nazywane węzłami krzywej (ang. knot) i spełniają one zależność tzn. jest to niemalejący ciąg, a więc węzły mogą się powtarzać; najczęściej zakłada się także, że i
Jeśli węzły dzielą przedział na równe części, wówczas krzywa w j. ang jest określana jako uniform, co można tłumaczyć jako (krzywa) jednorodna/równomierna. Jeśli węzły dzielą przedział nierównomiernie to krzywa w języku angielskim jest nazywana non-uniform (np. NURBS), czyli krzywa jest niejednorodna/nierównomierna.
Dowolny punkt na krzywej B-sklejanej jest dany równaniem, które wynika z algorytmu de Boora:
gdzie:
- – liczba węzłów,
- – stopień krzywej,
- – punkty kontrolne,
- – unormowana funkcja B-sklejana stopnia .
- – stopień krzywej,
Wszystkie krzywe składowe leżą w otoczce wypukłej swoich punktów kontrolnych, stąd cała krzywa B-sklejana leży w obszarze będącym sumą otoczek.
Jeśli krzywa jest reprezentowana we współrzędnych jednorodnych, a więc punkty we współrzędnych kartezjańskich opisują funkcje wymierne, wówczas mamy do czynienia z wymiernymi krzywymi B-sklejanymi. Jeśli dodatkowo dopuszczony jest nierównomierny rozkład węzłów, to takie krzywe nazywane są krzywymi NURBS.
Unormowana funkcja B-sklejana jest przedstawiana za pomocą ilorazu różnicowego obciętych funkcji potęgowych:
- – obcięta funkcja potęgowa
Jest to jednak dość skomplikowana i nieporęczna forma, toteż w praktyce stosuje się równoważny, rekurencyjny wzór Mansfielda-de Boora-Coxa, będący podstawą algorytmu de Boora:
Ponieważ węzły mogą się powtarzać, więc mianowniki w powyższym wzorze mogą się zerować, jednak zgodnie z definicją funkcji B-sklejanej w przypadku gdy przedział jest zerowy, to również wartość funkcji jest równa zero, zatem jeden ze składników sumy znika i nie jest w ogóle rozpatrywany.
Przykłady krzywych B-sklejanych
Na rysunku poniżej przedstawiono przykładowe jednorodne krzywe B-sklejane różnych stopni (węzły oznaczono czarnymi kropkami) opisane tą samą łamaną kontrolną oraz wykresy funkcji bazowych (na wykresach kolorami zaznaczono dziedziny poszczególnych krzywych). Jeśli wówczas „sklejane” są odcinki, identyczne z łamaną kontrolną krzywej. Dla krzywa B-sklejana jest przybliżana kilkoma kawałkami krzywych wielomianowych odpowiednich stopni, połączonych z ciągłością
Konstrukcja geometryczna krzywej B-sklejanej trzeciego stopnia
Krzywa B-sklejana jest reprezentowana przez krzywych Béziera, jednak punkty kontrolne nie wystarczają do właściwego wyznaczenia takiej liczby krzywych. Trzeba znaleźć dodatkowe punkty, które pozwolą skonstruować wszystkie krzywe Béziera 3. stopnia w taki sposób by była zachowana ciągłość parametryczna tzn. aby:
- krańcowe punkty kontrolne dwóch kolejnych krzywych Béziera pokrywały się,
- pierwsze pochodne obu krzywych były w punkcie połączenia równe,
- drugie pochodne obu krzywych były w punkcie połączenia równe.
Pierwszy warunek ciągłości jest zapewniony dzięki temu, że końce krzywych są jednakowe, umieszczone w punktach Drugi warunek ciągłości (równe pierwsze pochodne) gwarantuje współliniowość punktów Natomiast trzeci warunek (równe drugie pochodne) odpowiednie umiejscowienie punktów i
Jak sugeruje rysunek dodatkowe punkty oraz otrzymuje się przez „obcięcie” narożników. Odbywa się to podobnie jak w algorytmie de Casteljau, ale tutaj ma działanie lokalne i współczynniki podziału odcinków zależą od węzłów.
Pierwszym krokiem jest obliczenie długości przedziałów wyznaczanych przez węzły: W przypadku krzywych jednorodnych, tzn. takich dla których szerokości przedziałów są jednakowe poniższe wzory znacznie się upraszczają – ułamki są bowiem zastępowane stałymi: lub
Kolejne punkty wyznacza się zgodnie z zależnościami:
Po wyznaczeniu punktów i wyznaczane są punkty
Ostatecznie punkty kontrolne krzywych Béziera 3. stopnia są wyznaczane przez kolejne punkty:
Wzory wyznaczające punkty dla krzywych krańcowych są nieco prostsze, gdyż tylko w jednym punkcie muszą zostać spełnione warunki ciągłości. Natomiast krzywe znajdujące się „w środku” mają dwa punkty połączenia z innymi krzywymi, toteż warunki ciągłości muszą zostać spełnione dla obu tych punktów.
Zobacz też
- krzywa Béziera
- NURBS
- wymierna krzywa Béziera
Przypisy
Linki zewnętrzne
- Interaktywne aplety Javy – na stronie znajdują się interaktywne aplety Javy rysujące krzywe B-sklejane, w których można przemieszczać zarówno punkty kontrolne, jak i zmieniać wartości węzłów.
Media użyte na tej stronie
Autor: Wojciech mula, Licencja: CC0
B-spline with control points/control polygon, and marked component curves
Autor: Wojciech mula, Licencja: CC0
B-spline lies inside sum of convex hulls calculate for control points of component curves.
- red, blue - curves
- light gray - conex hullsAutor: Krzysztof Kuba Wawrzosek (Kuba ads), Licencja: CC-BY-SA-3.0
Wielomianowa niejednorodna krzywa B-sklejane trzeciego stopnia (zbudowana z pięciu krzywych Béziera). Węzły: 0.0, 0.1, 0.4, 0.6, 0.8, 1.0
Autor: Krzysztof Kuba Wawrzosek (Kuba ads), Licencja: CC BY-SA 2.5
Krzywa B-sklejana (jednorodne, uniform) różnych stopni + wykresy funkcji bazowych