Krzywa B-sklejana

Krzywa B-sklejana (ang. B-spline) – jedna 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 łącznicy”.

Podstawy matematyczneEdytuj

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

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.

 
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:

 
 
  – 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-sklejanychEdytuj

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 stopniaEdytuj

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  

 
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

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żEdytuj

PrzypisyEdytuj

  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.

Linki zewnętrzneEdytuj

  • 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.