Kilka słów o krzywych Béziera
03.06.2009 - Paweł Woźny
![]() ![]() ![]() ![]() Grafika komputerowa jest jednym z ciekawszych działów informatyki. O jej przydatności nie trzeba Was pewnie przekonywać (szczególnie tych, którzy sporo czasu spędzają przy grach komputerowych). Dziś trudno już wyobrazić sobie grafika, projektanta, twórcę filmów animowanych czy efektów specjalnych, który może obyć się bez komputera i zaawansowanych programów graficznych. Często metody i algorytmy wykorzystywane do tworzenia na ekranie komputera realistycznie wyglądających obiektów, scen czy animacji są bardzo skomplikowane. Istnieją jednak i takie, które są proste do zrozumienia, a mimo to pozwalają na uzyskanie ciekawych efektów. Do podstawowych narzędzi grafiki komputerowej zalicza się m.in. krzywe i powierzchnie Béziera, które są przez grafików często wykorzystywane w ich codziennej pracy. W artykule tym zajmiemy się krzywymi Béziera. Wybierzmy
nazywamy punktami kontrolnymi (ang. control points) krzywej , a — jej stopniem.
Musimy teraz wyjaśnić użyte oznaczenia. W podanym wzorze
jest tzw. symbolem Newtona (ang. binomial coefficient),
(czytamy: silnia; ang. th factorial) jest iloczynem kolejnych liczb naturalnych od do , a . I tak np.
Animacja 1.
Wydaje się to skomplikowane. Zróbmy więc prosty przykład. Przyjmijmy
, jest punktem na płaszczyźnie. Przyjmijmy , wtedy , bo
Rysunek 1.
Krzywe Béziera mają wiele ciekawych własności. Krzywa
Dla danego Dla Co prawda, wartość
Animacja 3. Do narysowania krzywej Beziera można oczywiście wykorzystać komputer. Aby to zrobić wyznaczamy punkty
jest dostatecznie duże (np. 100). Następnie, zamiast dokładnego wykresu krzywej , na ekranie monitora rysujemy łamaną powstałą z połączenia ze sobą kolejno punktów .
Jak już wspomniałem na początku, krzywe Béziera są jednym z najczęściej używanych przez grafików komputerowych narzędziem. Przy ich pomocy można w prosty sposób modelować różne obiekty. Przeważnie używa się krzywych Béziera niewielkiego stopnia, a umiejętnie je łącząc uzyskuje się skomplikowane sceny. Animacja 4. pokazuje jak przy pomocy trzech krzywych narysować brzydkie kaczątko.
Animacja 4.
Na rysunku 2. widać kaczuszkę składającą się z 32 krzywych Béziera (punkty kontrolne wszystkich krzywych widoczne są na rysunku 3.).
Rysunek 2.
Rysunek 3.
Zachęcam do napisania programu, który pozwoli wykreślać krzywe Béziera. Można zacząć od prostego rozwiązania, polegającego na tym, że użytkownik podaje punkty kontrolne krzywej (lub krzywych) w pliku tekstowym. Ci z Was, którzy biegle już programują mogą pokusić się o przygotowanie aplikacji, która będzie łatwiejsza w obsłudze, np. punkty kontrolne będą wskazywane przy pomocy myszki, będzie je można dodawać, przesuwać, usuwać itp. Następnie wykorzystajcie swój program np. do wymodelowania karoserii wymarzonego samochodu, rysowania kaczuszek
Zadania
Paweł Woźny (7 ocen) |
Copyright © 2008-2010 Wrocławski Portal Informatyczny
design: rafalpolito.com