StartAlgorytmyPodstawy grafikiKrzywa Beziera
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Krzywa Beziera
Ocena użytkowników:++++- / 10
SłabyŚwietny 
Wpisany przez Tomasz Nędza
poniedziałek, 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)*(1-t)*(1-t)*P1.x + 3*(1-t)*(1-t)*t*P2.x + 3*(1-t)*t*t*P3.x + t*t*t*P4.x
P.y=(1-t)*(1-t)*(1-t)*P1.y + 3*(1-t)*(1-t)*t*P2.y + 3*(1-t)*t*t*P3.y + t*t*t*P4.y
P.z=(1-t)*(1-t)*(1-t)*P1.z + 3*(1-t)*(1-t)*t*P2.z + 3*(1-t)*t*t*P3.z + t*t*t*P4.z

gdzie
   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



Autor Język programowania Komentarz Otwórz Pobierz Ocena
Jakub Konieczny Java Block Prosty przykład dla dwóch punktów
Implementacja w Java Block
Implementacja w Java Block
++++- / 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: poniedziałek, 20 czerwca 2011 21:47

Komentarze

 
photo
0 # :cry 2009-10-20 16:03
Any source..?
Odpowiedz | Odpowiedz z cytatem | Cytować
 
 
photo
+1 # Bartosz 2010-12-14 19:09
Świetnie opisane. Krótko zwięźle i na temat. :)
Odpowiedz | Odpowiedz z cytatem | Cytować
 

Dodaj komentarz

Kod antysapmowy
Odśwież