Krzywa B-sklejana

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Krzywa B-sklejana (ang. B-spline) jest jedną z najczęściej stosowanych reprezentacji parametrycznych krzywych sklejanych. Angielska nazwa spline (postulowana nazwa polska to splajn[1][2], lub łącznica) wzięła się z gwary 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 splajnów".

Podstawy matematyczne[edytuj]

Przykładowa krzywa 3. stopnia, wraz z punktami kontrolnymi. Kolorami czerwonym i niebieskim zaznaczono składowe krzywe wielomianowe

Krzywą B-sklejaną charakteryzują dwa parametry: 1) - stopień sklejanych krzywych wielomianowych (w praktyce zwykle niewielki, wynosi 2, 3 lub 4, rzadziej więcej), 2) - 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 angielkim jest nazywna non-uniform (np. NURBS), czyli krzywa jest niejednorodna/nierównomierna.

Otoczki wypukłe punktów kontrolnych krzywych wielomianowych

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 .

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:

dla
gdy
— 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[edytuj]

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ąglością .

B spline przyklad.svg

Konstrukcja geometryczna krzywej B-sklejanej trzeciego stopnia[edytuj]

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:

  1. krańcowe punkty kontrolne dwóch kolejnych krzywych Béziera pokrywały się,
  2. pierwsze pochodne obu krzywych były w punkcie połączenia równe,
  3. drugie pochodne obu krzywych były w punkcie połączenia równe.
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

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: dla .

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ż[edytuj]

Linki zewnętrzne[edytuj]

Przypisy

  1. Słownik Mirosława "Mirnala" Nalezińskiego – o zgodności słowa splajn z normami jęz. polskiego
  2. splajn w słowniku krzyżówkowym