algorytm.org

Krzywa Beziera



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Krzywa Beziera
Ocena użytkowników:***** / 37
SłabyŚwietny 
Wpisany przez Tomasz Nędza, 01 sierpnia 2005 23:13

Krzywa Beziera to krzywa wielomianowa trzeciego stopnia, czyli taka która może być definiowana za pomocą trzech wielomianów (odpowiednio dla współrzędnych x, y i z) z pewnym parametrem t. Wielomiany trzeciego stopnia są używane najczęściej, ponieważ wielomiany niższego stopnia są zbyt mało elastyczne, jeśli chodzi o sterowanie kształtem krzywej. Natomiast wielomiany wyższego stopnia wprowadzają niepożądane oscylacje, a ponadto wymagają większej liczby obliczeń. Krzywe trzeciego stopnia są również krzywymi najniższego stopnia, które nie leżą w jednej płaszczyźnie w 3D. Współczynniki wielomianów są tak dobierane, żeby krzywa przebiegała wzdłuż pożądanej ścieżki. Krzywa ta została opracowana przez Pierre'a Beziera z myślą o wykorzystaniu przy projektowaniu samochodów w firmie Renault. Krzywa określona jest przez dwa punkty końcowe oraz dwa punkty pośrednie nie należące do krzywej. Krzywa Beziera interpoluje więc oba końcowe punkty i aproksymuje dwa pozostałe.
Image
Punkty należące do krzywej Beziera obliczane są z równań:
P.x=(1-t)^3*P_1.x + 3*(1-t)^2*t*P_2.x + 3*(1-t)*t^2*P_3.x + t^3*P_4.x\\\\ P.y=(1-t)^3*P_1.y + 3*(1-t)^2*t*P_2.y + 3*(1-t)*t^2*P_3.y + t^3*P_4.y\\\\ P.z=(1-t)^3*P_1.z + 3*(1-t)^2*t*P_2.z + 3*(1-t)*t^2*P_3.z + t^3*P_4.z
   P.x - wspolrzedna x punktu P
   t - parametr z przedziału [0;1] określający, w którym miejscu krzywej znajduje się szukany punkt. Przykładowo dla t=0 otrzymujemy punkt P1, a dla t=1 punkt P4.
Aby otrzymać obraz (współrzędne punktów) całej krzywej należy zmieniać wartość t z odpowiednio małym krokiem. Poniżej znajduje się rysunek krzywej Beziera dla t zwiększanym z krokiem około 0,1.
Image
Przy łączeniu kilku segmentów krzywej Beziera należy dopilnować, aby zachowana była ciągłość w punkcie łączenia dwóch punktów końcowych.
Oznacza to, że wspólny punkt końcowy oraz dwa punkty pośrednie muszą być różne i współliniowe.
Image

Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Jakub KoniecznyJava_BlockProsty przykład dla dwóch punktów
.jbf
.jbf
***** / 5
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 01 września 2012 14:22
Komentarze
photo
-2 # :cry 2009-10-20 16:03
Any source..?
Odpowiedz | Odpowiedz z cytatem | Cytować
photo
+4 # Bartosz 2010-12-14 19:09
Świetnie opisane. Krótko zwięźle i na temat. :)
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz