Krzywa B-sklejana (ang. B-spline) jest jedną z zazwyczaj stosowanych reprezentacji parametrycznych krzywych sklejanych. Angielska imię spline wzięła się z gwary kreślarzy i odnosiła do długiej elastycznej metalowej taśmy, którą używano do rysowania samolotów, samochodów, statków itp. Zawieszając trafnie dobrane obciążniki jest dozwolone było zdobyć krzywą o ciągłości geometrycznej drugiego rodzaju. Odpowiednikiem matematycznym spline jest zagięcie B-sklejana trzeciego stopnia. Angielska miano krzywych B-sklejanych – B-spline jest skrótem od basis spline function, co znaczy “zależność bazowa splajnów”.
Spis treści
//
Szczegół matematyczne
Krzywe B-sklejane, równie jakże inne krzywe parametryczna używane w grafice komputerowej, są wyznaczane przez sznur punktów kontrolnych . Zagięcie taka jest reprezentowana przez m − 2n krzywych wielomianowych stopnia n (mówi się wówczas, iż zagięcie B-sklejana jest n-tego stopnia), które łączone są z określoną ciągłością parametryczna, z reguły Cn.
Krzywa jest określona na przedziale , jednak sznur m + 1 wartości ui dzieli ów przepierzenie na podprzedziały, na których zdefiniowane są poszczególne krzywe wielomianowe. Wartości u są nazywane węzłami krzywej (ang. knot) i spełniają one związek , tzn. jest to niemalejący tyraliera, a tak więc węzły mogą się powtarzać; tak bywa zakłada się ponadto, iż u0 = 0 i um = 1.
Jeśli węzły dzielą przepierzenie na równe części, wówczas zagięcie w j.ang jest określana jak uniform, co jest dozwolone tłumaczyć w charakterze (zagięcie) jednorodna/równomierna. O ile węzły dzielą przepierzenie nierównomiernie to zagięcie w j.ang. jest nazywna non-uniform, inaczej zagięcie jest niejednorodna/nierównomierna. Na nieszczęście, nie ma w tym miejscu dobrego, zgrabnego polskiego odpowiednika na rzecz angielskich określeń.
Fakultatywny pozycja na krzywej B-sklejanej jest ustalony równaniem, które wynika z algorytmu de Boora:
gdzie:
- m + 1 — wartość węzłów,
- n — wysokość krzywej,
- pi — punkty kontrolne,
- — unormowana zależność B-sklejna stopnia n.
Jeśli zagięcie jest reprezentowana we współrzędnych jednorodnych, a toteż punkty we współrzędnych kartezjańskich opisują funkcje wymierne, wówczas mamy do czynienia z wymiernymi krzywymi B-sklejanymi. O ile plus dopuszczony jest nieproporcjonalny dezintegracja węzłów, to takie krzywe nazywane są krzywymi NURBS.
Unormowana zależność B-sklejna jest przedstawiana za pomocą ilorazu różnicowego obciętych funkcji potęgowych:
na rzecz
kiedy (ui + n + 1 − ui) = 0
— obcięta zależność potęgowa
Jest to natomiast wystarczająco skomplikowana i nieporęczna postać, z tej przyczyny w praktyce stosuje się równoważny, rekurencyjny algorytm Mansfielda-de Boora-Coxa, będący podstawą algorytmu de Boora:
Ponieważ węzły mogą się trenować, zatem mianowniki w powyższym wzorze mogą się zerować, natomiast zgodnie z definicją funkcji B-sklejanej w przypadku kiedy przepierzenie jest będący zerem, to również walor funkcji jest równa łach, skutkiem tego jeden ze składników sumy znika i nie jest w ogóle rozpatrywany.
Przykłady krzywych B-sklejanych
Na rysunku wobec przedstawiono przykładowe jednorodne krzywe B-sklejane różnych stopni (węzły oznaczono czarnymi kropkami) opisane tą samą łamaną kontrolną (), i wykresy funkcji bazowych (na wykresach kolorami zaznaczono dziedziny poszczególnych krzywych). O ile n = 1 wówczas “sklejne” są odcinki, identyczne z łamaną kontrolną krzywej. Na rzecz n > 1 zagięcie B-sklejana jest przybliżana kilkoma kawałkami krzywych wielomianowych odpowiednich stopni, połączonych z ciąglością Cn.
Linki zewnętrzne:
- Interaktywne aplety Javy — na stronie znajdują się interaktywne aplety Javy rysujące krzywe B-sklejane, w których jest dozwolone przesuwać zarówno punkty kontrolne jakże i ulepszać wartości węzłów
Budowa geometryczna krzywej B-sklejanej trzeciego stopnia
Krzywa B-sklejana jest reprezentowana przez m − n krzywych Béziera, wprawdzie punkty kontrolne nie wystarczają do właściwego wyznaczenia takiej liczby krzywych. Powinno się wykryć dodatkowe punkty, które pozwolą sporządzić wszystkie krzywe Béziera 3. stopnia w taki modus by była zachowana wytrwałość parametryczna C2, 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.
Wielomianowa niejednorodna zagięcie 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 założenie ciągłości jest zapewniony podziękowanie temu, iż końce krzywych są jednakowe, umieszczone w punktach ei. Dalszy przesłanka ciągłości (równe zupa pochodne) gwarantuje współliniowość punktów gi, ei + 1, fi + 1. Lecz trzecia część założenie (równe drugie pochodne) odpowiednie umiejscowienie punktów f i g.
Jakim sposobem sugeruje kształt dodatkowe punkty e, f a g otrzymuje się przez “obcięcie” narożników. Odbywa się to jednakowo jakim sposobem w algorytmie de Casteljau, mimo to w tym miejscu ma akcja lokalne i współczynniki podziału odcinków zależą od węzłów.
Pierwszym krokiem jest rachunek długości przedziałów wyznaczanych przez węzły: . W przypadku krzywych jednorodnych, tzn. takich na rzecz których szerokości przedziałów hi są jednakowe poniższe wzory wysoko się upraszczają - ułamki są gdyż zastępowane stałymi: 1 / 2, 1 / 3 albo 2 / 3.
Kolejne punkty wyznacza się zgodnie z zależnościami:
f0 = p1
gm − 1 = pm + 1
Po wyznaczeniu punktów f i g wyznaczane są punkty ei:
e0 = p0
em = pm + 2
Ostatecznie punkty kontrolne m krzywych Béziera 3. stopnia są wyznaczane przez kolejne punkty: ei,fi,gi,ei + 1 na rzecz .
Wzory wyznaczające punkty na rzecz krzywych krańcowych są parę prostsze ponieważ właśnie w jednym punkcie muszą stać się spełnione sytuacja ciągłości. Aczkolwiek krzywe znajdujące się “w środku” mają dwoje punkty połączenia z innymi krzywymi, w związku z tym okoliczności ciągłości muszą stać się spełnione na rzecz obu tych punktów.
Zobacz też
- krzywa Béziera
- NURBS
- wymierna zagięcie Béziera