Krzywa Béziera -Bézier curve

Sześcienna krzywa Béziera z czterema punktami kontrolnymi
Funkcje bazowe w zakresie t w [0,1] dla sześciennych krzywych Béziera: niebieski: y = (1 − t ) 3 , zielony: y = 3(1 − t ) 2 t , czerwony: y = 3(1 − t ) t 2 , i cyjan: y = t 3 .

Krzywa Béziera ( / b ɛ z . I . / BEH -zee-ay ) to parametryczna krzywa używana w grafice komputerowej i dziedzinach pokrewnych. Zbiór dyskretnych „punktów kontrolnych” definiuje gładką, ciągłą krzywą za pomocą wzoru. Zwykle krzywa ma na celu przybliżenie rzeczywistego kształtu, który w przeciwnym razie nie ma matematycznej reprezentacji lub którego reprezentacja jest nieznana lub zbyt skomplikowana. Krzywa Béziera została nazwana na cześć francuskiego inżyniera Pierre'a Béziera , który wykorzystał ją w latach 60. do zaprojektowania krzywych dla karoserii Renaultsamochody. Inne zastosowania obejmują projektowanie czcionek komputerowych i animacji. Krzywe Béziera można łączyć, tworząc splajn Béziera , lub uogólniać na większe wymiary, tworząc powierzchnie Béziera . Trójkąt Béziera jest szczególnym przypadkiem tego ostatniego.

W grafice wektorowej krzywe Béziera są używane do modelowania gładkich krzywych, które można skalować w nieskończoność. „Ścieżki”, jak są one powszechnie określane w programach do obróbki obrazu, to kombinacje połączonych krzywych Béziera. Ścieżki nie są ograniczone ograniczeniami zrasteryzowanych obrazów i można je intuicyjnie modyfikować.

Krzywe Béziera są również używane w dziedzinie czasu, szczególnie w animacji , projektowaniu interfejsów użytkownika i wygładzaniu trajektorii kursora w interfejsach kontrolowanych wzrokiem. Na przykład krzywej Béziera można użyć do określenia prędkości obiektu, takiego jak ikona, przemieszczającego się z punktu A do punktu B w czasie, zamiast po prostu poruszać się ze stałą liczbą pikseli na krok. Kiedy animatorzy lub projektanci interfejsów mówią o „fizyce” lub „odczuciu” operacji, mogą odnosić się do konkretnej krzywej Béziera używanej do kontrolowania prędkości danego ruchu w czasie.

Dotyczy to również robotyki, w której ruch np. ramienia spawalniczego powinien być płynny, aby uniknąć niepotrzebnego zużycia.

Wynalazek

Matematyczna podstawa krzywych Béziera - wielomiany Bernsteina - została ustalona w 1912 r., Ale wielomiany zostały zastosowane w grafice dopiero około 50 lat później, kiedy matematyk Paul de Casteljau w 1959 r. Opracował algorytm de Casteljau , numerycznie stabilną metodę oceny krzywych, i jako pierwszy zastosował je do projektowania wspomaganego komputerowo we francuskim producencie samochodów Citroën . Jednak metoda de Casteljau została opatentowana we Francji, ale opublikowana dopiero w latach 80. XX wieku, podczas gdy wielomiany Béziera zostały szeroko nagłośnione w latach 60. XX wieku przez francuskiego inżyniera Pierre'a Béziera , który odkrył je niezależnie i wykorzystał do projektowania karoserii samochodów w Renault .

Konkretne przypadki

Krzywa Béziera jest zdefiniowana przez zbiór punktów kontrolnych od P0 do Pn , gdzie n nazywa się rzędem krzywej ( n = 1 dla liniowej, 2 dla kwadratowej, 3 dla sześciennej itd.). Pierwszy i ostatni punkt kontrolny są zawsze punktami końcowymi krzywej; jednakże pośrednie punkty kontrolne (jeśli występują) generalnie nie leżą na krzywej. Sumy w kolejnych sekcjach należy rozumieć jako kombinacje afiniczne – czyli suma współczynników wynosi 1.

Liniowe krzywe Béziera

Biorąc pod uwagę różne punkty P 0 i P 1 , liniowa krzywa Béziera jest po prostu linią między tymi dwoma punktami. Krzywa jest dana przez

i jest równoważne z interpolacją liniową .

Kwadratowe krzywe Béziera

Kwadratowe Béziera w sztuce smyczkowej : Punkty końcowe ( ) i punkt kontrolny ( × ) definiują kwadratową krzywą Béziera ( ).

Kwadratowa krzywa Béziera to ścieżka wyznaczona przez funkcję B ( t ), przy danych punktach P 0 , P 1 i P 2 ,

,

co można interpretować jako liniową interpolantę odpowiednich punktów na liniowych krzywych Béziera odpowiednio od P 0 do P 1 i od P 1 do P 2 . Przekształcenie poprzedniego równania daje:

Można to zapisać w sposób podkreślający symetrię względem P 1 :

Co natychmiast daje pochodną krzywej Béziera względem t :

z czego można wywnioskować, że styczne do krzywej w P 0 i P 2 przecinają się w P 1 . Gdy t wzrasta od 0 do 1, krzywa oddala się od P0 w kierunku P1 , następnie zagina się, aby dojść do P2 z kierunku P1 .

Druga pochodna krzywej Béziera względem t wynosi

Sześcienne krzywe Béziera

Cztery punkty P 0 , P 1 , P 2 i P 3 na płaszczyźnie lub w przestrzeni wielowymiarowej definiują sześcienną krzywą Béziera. Krzywa zaczyna się w punkcie P0 i biegnie w kierunku punktu P1 i dochodzi do punktu P3 wychodząc z kierunku P2 . Zwykle nie przechodzi przez P 1 lub P 2 ; punkty te służą jedynie do dostarczania informacji kierunkowych. Odległość między P1 i P2 określa „jak daleko” i „jak szybko” krzywa przesuwa się w kierunku P1 przed skrętem w kierunku P2 .

Zapisując B P i , P j , P k ( t ) dla kwadratowej krzywej Béziera określonej przez punkty P i , P j i P k , sześcienną krzywą Béziera można zdefiniować jako afiniczną kombinację dwóch kwadratowych krzywych Béziera:

Jawna postać krzywej to:

W przypadku niektórych opcji P 1 i P 2 krzywa może się przecinać lub zawierać wierzchołek .

Dowolną serię 4 różnych punktów można przekształcić w sześcienną krzywą Béziera, która przechodzi przez wszystkie 4 punkty w kolejności. Biorąc pod uwagę punkt początkowy i końcowy pewnej sześciennej krzywej Béziera oraz punkty wzdłuż krzywej odpowiadające t  = 1/3 i t  = 2/3, można odzyskać punkty kontrolne dla oryginalnej krzywej Béziera.

Pochodna sześciennej krzywej Béziera względem t wynosi

Druga pochodna krzywej Béziera względem t wynosi

Ogólna definicja

Krzywe Béziera można zdefiniować dla dowolnego stopnia n .

Definicja rekurencyjna

Rekurencyjna definicja krzywej Béziera stopnia n wyraża ją jako kombinację liniową punkt-punkt ( interpolacja liniowa ) pary odpowiednich punktów na dwóch krzywych Béziera stopnia n  - 1.

Oznaczmy krzywą Béziera wyznaczoną przez dowolny wybór punktów P 0 , P 1 , ...,  P k . Następnie, aby rozpocząć,

Ta rekurencja jest wyjaśniona na poniższych animacjach .

Wyraźna definicja

Wzór można wyrazić wprost w następujący sposób (gdzie t 0 i (1-t) 0 są przedłużane w sposób ciągły do ​​1 przez [0,1]):

gdzie są współczynniki dwumianowe .

Na przykład, gdy n  = 5:

Terminologia

Z tymi parametrycznymi krzywymi związana jest pewna terminologia. Mamy

gdzie wielomiany

są znane jako wielomiany bazowe Bernsteina stopnia n .

Zauważ, że t 0  = 1, (1 −  t ) 0  = 1 i że współczynnik dwumianowy , , wynosi:

Punkty P i nazywane są punktami kontrolnymi krzywej Béziera. Wielokąt utworzony przez połączenie punktów Béziera liniami , zaczynając od P 0 i kończąc na P n , nazywany jest wielokątem Béziera (lub wielokątem kontrolnym ). Wypukły kadłub wielokąta Béziera zawiera krzywą Béziera .

Forma wielomianowa

Czasami pożądane jest wyrażenie krzywej Béziera jako wielomianu zamiast sumy mniej prostych wielomianów Bernsteina . Zastosowanie twierdzenia o dwumianach do definicji krzywej, po którym nastąpi pewne przegrupowanie, przyniesie rezultaty

gdzie

Może to być praktyczne, jeśli można je obliczyć przed wieloma ocenami ; należy jednak zachować ostrożność, ponieważ krzywe wysokiego rzędu mogą nie być stabilne numerycznie ( w takim przypadku należy zastosować algorytm de Casteljau ). Zauważ, że pustym produktem jest 1.

Nieruchomości

Sześcienna krzywa Béziera (żółta) może być identyczna z kwadratową (czarną) przez
1. kopiowanie punktów końcowych i
2. umieszczenie jej 2 środkowych punktów kontrolnych (żółte kółka) 2/3 wzdłuż odcinków linii od punktów końcowych do środkowego punktu kontrolnego krzywej kwadratowej (czarny prostokąt).
  • Krzywa zaczyna się w P0 i kończy w Pn ; jest to tak zwana właściwość interpolacji punktu końcowego .
  • Krzywa jest linią wtedy i tylko wtedy, gdy wszystkie punkty kontrolne są współliniowe .
  • Początek i koniec krzywej są styczne odpowiednio do pierwszej i ostatniej sekcji wielokąta Béziera.
  • Krzywą można podzielić w dowolnym punkcie na dwie krzywe podrzędne lub na dowolną liczbę krzywych podrzędnych, z których każda jest również krzywą Béziera.
  • Niektóre krzywe, które wydają się proste, takie jak okrąg , nie mogą być dokładnie opisane za pomocą krzywej Béziera lub częściowej krzywej Béziera; chociaż czteroczęściowa sześcienna krzywa Béziera może przybliżać okrąg (patrz złożona krzywa Béziera ), z maksymalnym błędem promieniowym mniejszym niż jedna część na tysiąc, gdy każdy wewnętrzny punkt kontrolny (lub punkt offline) jest odległością poziomą lub pionową od zewnętrzny punkt kontrolny na okręgu jednostkowym. Mówiąc bardziej ogólnie, n - częściowa sześcienna krzywa Béziera może przybliżać okrąg, gdy każdy wewnętrzny punkt kontrolny jest odległością od zewnętrznego punktu kontrolnego na okręgu jednostkowym, gdzie t wynosi 360/ n stopni, a n > 2.
  • Każda kwadratowa krzywa Béziera jest również sześcienną krzywą Béziera, a bardziej ogólnie, każda krzywa Béziera stopnia n jest również krzywą stopnia m dla dowolnego m > n . Bardziej szczegółowo, krzywa stopnia n z punktami kontrolnymi P 0 , ..., P n jest równoważna (włączając parametryzację) krzywej stopnia n + 1 z punktami kontrolnymi P' 0 , ..., P' n + 1 , gdzie .
  • Krzywe Béziera mają właściwość zmniejszania zmienności . Intuicyjnie oznacza to, że krzywa Béziera nie „faluje” bardziej niż wielokąt jej punktów kontrolnych i może faktycznie „falować” mniej.
  • Nie ma lokalnej kontroli na krzywych Béziera stopnia n - co oznacza, że ​​jakakolwiek zmiana punktu kontrolnego wymaga ponownego obliczenia, a tym samym wpływa na aspekt całej krzywej, „chociaż im dalej jest od punktu kontrolnego, który został zmieniony, tym mniejszy jest zmiana krzywej”.
  • Krzywa Béziera rzędu wyższego niż dwa może przecinać się lub mieć wierzchołek dla pewnych wyborów punktów kontrolnych.

Krzywa drugiego rzędu to odcinek paraboliczny

Równoważność kwadratowej krzywej Béziera i odcinka parabolicznego

Kwadratowa krzywa Béziera jest również odcinkiem paraboli . Ponieważ parabola jest przekrojem stożkowym , niektóre źródła określają kwadratowy Béziers jako „łuki stożkowe”. W odniesieniu do rysunku po prawej stronie, ważne cechy paraboli można wyprowadzić w następujący sposób:

  1. Styczne do paraboli w punktach końcowych krzywej (A i B) przecinają się w jej punkcie kontrolnym (C).
  2. Jeśli D jest środkiem AB, styczna do krzywej prostopadłej do CD (przerywana linia cyjanowa) wyznacza jej wierzchołek (V). Jego oś symetrii (kreska-kropka cyjan) przechodzi przez V i jest prostopadła do stycznej.
  3. E jest albo punktem na krzywej ze styczną pod kątem 45° do CD (przerywana zielona linia). Jeśli G jest przecięciem tej stycznej i osi, linia przechodząca przez G i prostopadła do CD jest kierownicą (ciągłe zielone).
  4. Ognisko (F) znajduje się na przecięciu osi i linii przechodzącej przez E i prostopadłej do CD (żółta kropkowana). Latus rectum to odcinek linii w obrębie krzywej (stały żółty).

Pochodna

Pochodna krzywej rzędu n wynosi

Konstruowanie krzywych Béziera

Krzywe liniowe

t w funkcji liniowej krzywej Béziera można traktować jako opisujące odległość B ( t ) od P 0 do P 1 . Na przykład, gdy t = 0,25, B ( t ) to jedna czwarta drogi od punktu P 0 do P 1 . Ponieważ t zmienia się od 0 do 1, B ( t ) opisuje linię od P0 do P1 .

Animacja liniowej krzywej Béziera, t w [0,1]
Animacja liniowej krzywej Béziera, t w [0,1]

Krzywe kwadratowe

Dla kwadratowych krzywych Béziera można skonstruować punkty pośrednie Q 0 i Q 1 takie, że gdy t zmienia się od 0 do 1:

  • Punkt Q 0 ( t ) zmienia się od P 0 do P 1 i opisuje liniową krzywą Béziera.
  • Punkt Q1 ( t ) zmienia się od P1 do P2 i opisuje liniową krzywą Béziera .
  • Punkt B ( t ) jest interpolowany liniowo między Q0 ( t ) a Q1 ( t ) i opisuje kwadratową krzywą Béziera.
Konstrukcja kwadratowej krzywej Béziera Animacja kwadratowej krzywej Béziera, t w [0,1]
Konstrukcja kwadratowej krzywej Béziera Animacja kwadratowej krzywej Béziera, t w [0,1]

Krzywe wyższego rzędu

Dla krzywych wyższego rzędu potrzeba odpowiednio więcej punktów pośrednich. Dla krzywych sześciennych można skonstruować punkty pośrednie Q 0 , Q 1 i Q 2 opisujące liniowe krzywe Béziera oraz punkty R 0 i R 1 opisujące kwadratowe krzywe Béziera:

Budowa sześciennej krzywej Béziera Animacja sześciennej krzywej Béziera, t w [0,1]
Budowa sześciennej krzywej Béziera Animacja sześciennej krzywej Béziera, t w [0,1]

Dla krzywych czwartego rzędu można skonstruować punkty pośrednie Q 0 , Q 1 , Q 2 i Q 3 opisujące liniowe krzywe Béziera, punkty R 0 , R 1 i R 2 opisujące kwadratowe krzywe Béziera oraz punkty S 0 i S 1 , które opisz sześcienne krzywe Béziera:

Konstrukcja kwartalnej krzywej Béziera Animacja kwartalnej krzywej Béziera, t w [0,1]
Konstrukcja kwartalnej krzywej Béziera Animacja kwartalnej krzywej Béziera, t w [0,1]

W przypadku krzywych piątego rzędu można skonstruować podobne punkty pośrednie.

Animacja konstrukcji krzywej Béziera piątego rzędu
Animacja krzywej Béziera piątego rzędu, t w [0,1] na czerwono. Pokazane są również krzywe Béziera dla każdego z niższych rzędów.

Te reprezentacje opierają się na procesie stosowanym w algorytmie De Casteljau do obliczania krzywych Béziera.

Przesunięcia (lub obrysowanie) krzywych Béziera

Krzywa ze stałym przesunięciem od danej krzywej Béziera, zwana w matematyce krzywą przesuniętą lub równoległą (leżąca „równolegle” do pierwotnej krzywej, jak przesunięcie między szynami na torze kolejowym ), nie może być dokładnie utworzona przez krzywą Béziera ( z wyjątkiem kilku błahych przypadków). Ogólnie rzecz biorąc, dwustronna krzywa przesunięcia sześciennej krzywej Béziera jest krzywą algebraiczną 10. rzędu, a bardziej ogólnie dla Béziera stopnia n dwustronna krzywa przesunięcia jest krzywą algebraiczną stopnia 4 n -2. Istnieją jednak metody heurystyczne , które zwykle dają odpowiednie przybliżenie do celów praktycznych.

W dziedzinie grafiki wektorowej malowanie dwóch symetrycznie oddalonych od siebie krzywych offsetowych nazywa się głaskaniem (krzywa Béziera lub ogólnie ścieżka kilku segmentów Béziera). Konwersja z przesuniętych krzywych do wypełnionych konturów Béziera ma praktyczne znaczenie przy konwersji czcionek zdefiniowanych w Metafont , które wymagają obrysowywania krzywych Béziera, na szerzej stosowane czcionki PostScript typu 1 , które wymagają jedynie (ze względu na wydajność) matematycznie prostszej operacji wypełnienie konturu zdefiniowanego przez (nieprzecinające się) krzywe Béziera.

Podniesienie stopnia

Krzywą Béziera stopnia n można przekształcić w krzywą Béziera stopnia n  + 1 o tym samym kształcie . Jest to przydatne, jeśli oprogramowanie obsługuje krzywe Béziera tylko o określonym stopniu. Na przykład systemy, które mogą pracować tylko z sześciennymi krzywymi Béziera, mogą domyślnie pracować z krzywymi kwadratowymi, używając ich równoważnej reprezentacji sześciennej.

Aby wykonać elewację stopnia, używamy równości Każdy składnik jest mnożony przez (1 −  t ) i  t , zwiększając w ten sposób stopień o jeden bez zmiany wartości. Oto przykład zwiększania stopnia od 2 do 3.

Dla dowolnego n używamy równości

W związku z tym:

wprowadzanie arbitralne i .

Dlatego nowe punkty kontrolne są

Powtarzające się podwyższenie stopnia

Koncepcję wysokości stopnia można powtórzyć na wielokącie kontrolnym R , aby uzyskać sekwencję wielokątów kontrolnych R , R 1 , R 2 i tak dalej. Po podniesieniu o r stopni wielokąt R r ma wierzchołki P 0, r , P 1, r , P 2, r , ..., P n + r , r dane przez

Można również pokazać, że dla podstawowej krzywej Béziera B ,

Racjonalne krzywe Béziera

Segmenty przekrojów stożkowych reprezentowane dokładnie przez wymierne krzywe Béziera

Racjonalna krzywa Béziera dodaje regulowane wagi, aby zapewnić bliższe przybliżenie dowolnych kształtów. Licznik jest ważoną krzywą Béziera w postaci Bernsteina, a mianownik jest ważoną sumą wielomianów Bernsteina . Wymierne krzywe Béziera mogą, między innymi, służyć do dokładnego przedstawiania segmentów przekrojów stożkowych , w tym łuków kołowych.

Biorąc pod uwagę n  + 1 punktów kontrolnych P 0 , ..., P n , wymierną krzywą Béziera można opisać wzorem

lub po prostu

Wyrażenie można rozszerzyć, używając systemów liczbowych oprócz liczb rzeczywistych dla wag. Na płaszczyźnie zespolonej punkty {1}, {-1} i {1} o wagach { }, {1} i { } generują pełny okrąg o promieniu jeden. W przypadku krzywych z punktami i wagami na okręgu wagi można skalować bez zmiany kształtu krzywej. Skalowanie centralnej wagi powyższej krzywej o 1,35508 daje bardziej jednolitą parametryzację.

Aplikacje

Grafika komputerowa

Ścieżka Béziera w programie Adobe Illustrator

Krzywe Béziera są szeroko stosowane w grafice komputerowej do modelowania gładkich krzywych. Ponieważ krzywa jest całkowicie zawarta w wypukłej otoczce jej punktów kontrolnych , punkty te można wyświetlać graficznie i wykorzystywać do intuicyjnego manipulowania krzywą. Transformacje afiniczne , takie jak translacja i obrót , można zastosować na krzywej, stosując odpowiednią transformację w punktach kontrolnych krzywej.

Najczęściej spotykane są kwadratowe i sześcienne krzywe Béziera. Krzywe wyższego stopnia są bardziej kosztowne obliczeniowo do oceny. Gdy potrzebne są bardziej złożone kształty, krzywe Béziera niższego rzędu są łączone razem, tworząc złożoną krzywą Béziera . Złożona krzywa Béziera jest powszechnie określana jako „ścieżka” w językach grafiki wektorowej (takich jak PostScript ), standardach grafiki wektorowej (takich jak SVG ) i programach do grafiki wektorowej (takich jak Artline , Timeworks Publisher , Adobe Illustrator , CorelDraw , Inkscape i Allegro ) . Aby połączyć krzywe Béziera w złożoną krzywą Béziera bez załamań, właściwość zwaną G1 continuous , wystarczy wymusić, aby punkt kontrolny, w którym spotykają się dwie składowe krzywe Béziera, leżał na linii wyznaczonej przez dwa punkty kontrolne po obu stronach.

Abstrakcyjna kompozycja sześciennych krzywych Béziera ze śledzeniem promieni w 3D. Przecięcie promienia z objętościami przesuniętymi wzdłuż krzywych jest obliczane za pomocą algorytmu Phantom Ray-Hair Intersector.

Najprostszą metodą konwersji skanowania ( rasteryzacji ) krzywej Béziera jest ocena jej w wielu blisko rozmieszczonych punktach i konwersja skanowania przybliżonej sekwencji segmentów linii. Nie gwarantuje to jednak, że zrasteryzowane dane wyjściowe będą wyglądać wystarczająco gładko, ponieważ punkty mogą być rozmieszczone zbyt daleko od siebie. I odwrotnie, może generować zbyt wiele punktów w obszarach, w których krzywa jest zbliżona do liniowej. Powszechną metodą adaptacyjną jest podział rekurencyjny, w którym punkty kontrolne krzywej są sprawdzane, aby zobaczyć, czy krzywa zbliża się do linii z niewielką tolerancją. Jeśli nie, krzywa jest dzielona parametrycznie na dwa segmenty, 0 ≤ t ≤ 0,5 i 0,5 ≤ t ≤ 1, i ta sama procedura jest stosowana rekurencyjnie do każdej połowy. Istnieją również metody różnicowania w przód, ale należy zwrócić szczególną uwagę na analizę propagacji błędów.

Metody analityczne, w których Béziera przecina się z każdą linią skanowania, obejmują znajdowanie pierwiastków wielomianów sześciennych (dla sześciennych Béziera) i radzenie sobie z wieloma pierwiastkami, więc nie są one często używane w praktyce.

Algorytm rasteryzacji zastosowany w Metafont opiera się na dyskretyzacji krzywej, tak że jest ona aproksymowana przez sekwencję „ ruchów wieży ”, które są czysto pionowe lub czysto poziome, wzdłuż granic pikseli. W tym celu płaszczyzna jest najpierw dzielona na osiem sektorów 45 ° (przez osie współrzędnych i dwie linie ), następnie krzywa jest rozkładana na mniejsze segmenty, tak że kierunek segmentu krzywej pozostaje w jednym sektorze; ponieważ prędkość na krzywej jest wielomianem drugiego stopnia, znalezienie wartości, w których jest równoległa do jednej z tych prostych, można wykonać, rozwiązując równania kwadratowe . W każdym segmencie dominuje ruch poziomy lub pionowy, a całkowitą liczbę kroków w dowolnym kierunku można odczytać ze współrzędnych punktu końcowego; na przykład dominuje poziomy ruch sektora 0–45 ° w prawo, więc pozostaje tylko zdecydować, między którymi krokami w prawo krzywa powinna wzrosnąć.

Istnieje również zmodyfikowana postać krzywej algorytmu rysowania linii Bresenhama autorstwa Zingla, która wykonuje tę rasteryzację, dzieląc krzywą na wymierne części i obliczając błąd w każdym położeniu piksela tak, że porusza się on pod kątem 45 ° lub prosto, w zależności od błędu złożonego jako iteruje po krzywej. Zmniejsza to obliczenia następnego kroku do serii dodawania i odejmowania liczb całkowitych .

Animacja

W aplikacjach do animacji, takich jak Adobe Flash i Synfig , krzywe Béziera są używane na przykład do konturowania ruchu. Użytkownicy wyznaczają żądaną ścieżkę na krzywych Béziera, a aplikacja tworzy potrzebne ramki, aby obiekt poruszał się po ścieżce.

W animacji 3D krzywe Béziera są często używane do definiowania ścieżek 3D, a także krzywe 2D do interpolacji klatek kluczowych. Krzywe Béziera są obecnie bardzo często używane do kontrolowania wygładzania animacji w CSS , JavaScript , JavaFx i Flutter SDK .

Czcionki

Czcionki TrueType wykorzystują złożone krzywe Béziera złożone z kwadratowych krzywych Béziera. Inne języki i narzędzia do tworzenia obrazów (takie jak PostScript , Asymptote , Metafont i SVG ) używają złożonych Béziera składających się z sześciennych krzywych Béziera do rysowania zakrzywionych kształtów. Czcionki OpenType mogą wykorzystywać dowolny rodzaj krzywej, w zależności od technologii czcionek leżącej u podstaw opakowania OpenType.

Wewnętrzne renderowanie wszystkich krzywych Béziera w rendererach czcionek lub grafiki wektorowej podzieli je rekurencyjnie do punktu, w którym krzywa jest wystarczająco płaska, aby można ją było narysować jako serię segmentów liniowych lub kołowych. Dokładny algorytm podziału zależy od implementacji, należy przestrzegać jedynie kryteriów płaskości, aby osiągnąć niezbędną precyzję i uniknąć niemonotonicznych lokalnych zmian krzywizny. Funkcja „gładkiej krzywej” wykresów w programie Microsoft Excel również wykorzystuje ten algorytm.

Ponieważ łuki okręgów i elips nie mogą być dokładnie reprezentowane przez krzywe Béziera, są one najpierw przybliżane przez krzywe Béziera, które z kolei są przybliżane przez łuki okręgów. Jest to nieefektywne, ponieważ istnieją również przybliżenia wszystkich krzywych Béziera za pomocą łuków okręgów lub elips, które można renderować przyrostowo z dowolną precyzją. Inne podejście, stosowane przez nowoczesne sprzętowe karty graficzne z przyspieszoną geometrią, może konwertować dokładnie wszystkie krzywe Béziera i stożkowe (lub powierzchnie) na NURBS , które można renderować przyrostowo bez uprzedniego rekurencyjnego dzielenia krzywej w celu osiągnięcia wymaganego warunku płaskości. Takie podejście zachowuje również definicję krzywej we wszystkich liniowych lub perspektywicznych przekształceniach i projekcjach 2D i 3D.

Silniki czcionek, takie jak FreeType , rysują krzywe (i linie) czcionki na pikselowanej powierzchni za pomocą procesu znanego jako rasteryzacja czcionki .

Robotyka

Krzywe Béziera mogą być wykorzystywane w robotyce do tworzenia trajektorii efektora końcowego ze względu na zdolność wielokąta kontrolnego do wyraźnego wskazania, czy ścieżka koliduje z pobliską przeszkodą lub obiektem. Ponadto trajektorie przestrzeni stawowej można dokładnie rozróżnić za pomocą krzywych Béziera. W związku z tym pochodne trajektorii przestrzennych przegubów są wykorzystywane do obliczania dynamiki i wysiłku sterowania (profile momentu obrotowego) manipulatora robota.

Zobacz też

Notatki

Bibliografia

Cytaty

Źródła

Dalsza lektura

Zewnętrzne linki

Kod komputerowy