Algorytm de Casteljau

Z testwiki
Wersja z dnia 19:02, 15 gru 2024 autorstwa imported>MalarzBOT (poprawa wywołania grafiki w infoboksie)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Algorytm infobox

Algorytm de Casteljaualgorytm opracowany przez Paula de Casteljau, pozwalający na wyznaczenie punktów na wielomianowej krzywej Béziera, czyli obliczanie wartości wielomianów w bazie wielomianów Bernsteina.

Dana jest dowolna łamana zdefiniowana przez n+1 wierzchołków p0,p1,,pn oraz liczba t[0,1]. Każdy odcinek łamanej jest dzielony w stosunku t:1t, czego wynikiem jest n wierzchołków, które wyznaczają nową łamaną. Proces powtarzany jest do chwili, aż zostanie jeden punkt p(t), co wymaga wykonania n kroków. Ostatecznie otrzymuje się n+1 ciągów punktów (indeks górny oznacza krok algorytmu):


p0(0),p1(0),p2(0),p3(0),,pn(0)p0(1),p1(1),p2(1),,pn1(1)p0(n1),p1(n1)p0(n)


Punkt p(t)(n) leży na krzywej Béziera, której łamaną kontrolną tworzą wyjściowe punkty p0(0),p1(0),p2(0),,pn(0). Wykonując algorytm dla wszystkich t z przedziału [0,1] otrzymywane są wszystkie punkty krzywej Béziera.

Algorytm de Casteljau – cztery kolejne łamane, na czerwono wynikowy punkt p(t) (t=0,37). Kolorem czarnym narysowano krzywą Béziera, na której leży p(t).

Za pomocą algorytmu de Casteljau można również:

  • Wyznaczyć punkty kontrolne dwóch krzywych, tak aby połączyć je z zadaną ciągłością geometryczną (zob. krzywa B-sklejana).
  • Podzielić krzywą na dwie krzywe w punkcie p(t). Łamane kontrolne są wyznaczane przez punkty leżące na brzegach przedstawionego wyżej „trójkąta punktów” – łamaną kontrolną pierwszej krzywej opisują punkty: p0(0),p0(1),,p0(n1),p0(n), a drugą: pn(0),pn1(1),,p1(n1),p0(n). Obie krzywe są tego samego stopnia co dzielona krzywa.
Podział krzywej Béziera algorytmem de Casteljau

Bibliografia