KRZYWA BÉZIERA TWORZENIE I WIZUALIZACJA KRZYWYCH PARAMETRYCZNYCH NA PRZYKŁADZIE KRZYWEJ BÉZIERA Krzysztof Serżęga Wyższa Szkoła Informatyk Zarządzana w Rzeszowe Streszczene Artykuł porusza temat zwązany z krzywym Bézera oraz algorytmem Casteljau. Zawarte są w nm przykłady zastosowań krzywych Bézera w takch dzedznach jak grafka, czy projektowane. Opsuję czym są krzywe Bézera, jak sę je tworzy przedstawam algorytm Casteljau. Następne przedstawam narzędze mojego autorstwa do wzualzacj krzywych sposobu dzałana algorytmu. Na konec prezentuje dalsze możlwośc rozwoju aplkacj Wstęp W artykule opsuje sposoby tworzena krzywych Bezera ch prezentowana. Przedstawę mój program, umożlwający wzualzacje krzywych Bézera. 1. Cel Mom celem jest stworzene narzędza służącego do jasnej reprezentacj de krzywych stosowanych metod ch wyznaczanu. www.thnk.wsz.rzeszow.pl, ISSN 2082-1107, Nr 2 (6) 2011, s. 139-145
2. Hstora Krzywe Bézera zostały opracowane w latach 60. XX w. Prace nad nm były prowadzone nezależne przez dwóch naukowców Perre'a Bézera oraz Paula de Casteljau. Obydwaj pracowal dla frm zajmujących sę projektowanem produkcją samochodów (perwszy z nch dla Renault, drug zaś dla Ctroën). Przez lata ch prace były utajnone, dopero pod konec zaczęły pojawać sę perwsze publkacje Perre'a Bézera opsujące jego prace, dlatego też noszą one jego nazwsko. Prace Paula de Casteljau ukazały sę na początku lat 70. 3. Zastosowane Krzywe Bézera znalazły szeroke zastosowane, szczególne w dzedznach zwązanych z projektowanem oraz grafką komputerową. Jako że krzywe te były wymyślone w celu łatwego opsu krzywych stosowanych przy projektowanu nadwoz samochodów, stosuje sę je dodo chwl obecnej. Dodatkowo znalazły szeroke zastosowane w grafce komputerowej. Stosuje sę je w systemach przetwarzana grafk komputerowej takch jak PostScrpt, MetaPost. W PostScrpce krzywa Bézera opsuje wszystke krzywe, aproksymuje nawet łuk elptyczne. Kolejnym jej zastosowanem są czconk komputerowe, gdze za jej pomocą reprezentuje sę kształty znaków (TrueType, METAFONT, Type1). Ponadto, jest stosowana w programach do tworzena grafk komputerowej takch jak: Corel Draw, Adobe Illustrator czy Inkscape oraz w programach do projektowana nżynerskego np. McroStaton. 4. Welomanowa krzywa Bézera Do tworzena krzywej Bézera wykorzystuje sę n + 1 punktów kontrolnych p 0, p n. Kształt krzywej Bézera zależy od welomanów, dla których przyjęto dzedznę [0,1]. Stopeń welomanu wynos n. Welomany te przedstawane są zwykle w baze welomanów Bernstena B n (t), czyl B n n t ( t) = 0 ( 1 t) n dla = 0...n dla < 0, > n Dowolny punkt na krzywej Bézera wyznaczamy: p n = n ( t) p B ( t) dla t [0,1] = 0 140
Najczęścej stosowanym krzywym Bézera są krzywe trzecego stopna leżące na płaszczyźne. Aby określć krzywą na płaszczyźne potrzebne są dwe funkcje, natomast aby określć krzywą w przestrzen trzy. Krzywe trzecego stopna na płaszczyźne podaje sę cztery punkty A, B, C, D. Otrzymujemy następujące równane: Natomast welomany tworzące krzywą Bézera mają postać: Cechą charakterystyczną welomanów Bézera jest to, ż nterpoluje ona dwa końcowe punkty kontrolne natomast pozostałe punkty aproksymuje. 5. Algorytm Casteljau Algorytm Casteljau pozwala na wyznaczene dowolnego punktu na welomanowej krzywej Bézera, przy zadanym t [0,1].Przy czym dla 0 pryzmujemy punkt początkowy krzywej natomast za 1 przyjmujemy punkt końcowy krzywej ( punkty które są nterpolowane przez krzywą). Jedną z najważnejszych cech algorytmu Casteljau jest to, że ma mnejszą złożoność oblczenową nż stosowane wzorów, co jest bardzo ważne w zastosowanach komputerowych. Krok 1. Wyberamy 4 punkty Krok 2. Tworzę łamaną łącząc kolejne punkty kontrolne. Krok 3. Na każdym odcnku łamanej wyznaczam punkt w odpowednej odległośc zależnej od wybranego t. Otrzymane punkty łączymy jak w kroku nr 2. Krok 4. Gdy otrzymujemy jeden punkt. Jest to punkt na krzywej Bézera dla zadanego t. 141
Rysunek 1 Krzywa Bézera algorytm Casteljau Rysunek 1 przedstawa dzałane algorytmu dla t =1/2. Pogrubona czarna lna to krzywa Bézera dla czterech punktów bazowych oznaczonych na czerwono. Zelony punkt, to wyznaczony punkt na krzywej Bézera wyznaczony dla t=1/2. 6. Ops programu Ponżej zaprezentuje stworzone narzędze które udostępna klka funkcjonalnośc zwązanych z krzywym Bézera oraz algorytem Casteljau. Aplkacja została napsana z wykorzystanem języka C# oraz platformy.net. Dlatego jeśl chcemy uruchomć program musmy posadać zanstalowany paket Mcrosoft.Net Framework w wersj 3.5 lub wyższej. Ponżej przedstawam rzut ekranu z programu. 142
Rysunek 2 "Krzywa Bezera" - przykład krzywej Program umożlwa wpsane współrzędnych punktów bazowych welomanu Bézera trzecego stopna. Zakres wprowadzonych danych pownen sę zawerać w przedzale [-200,200]. Przy wprowadzenu ne poprawnej wartośc użytkownk zostaje ponformowany stosownym komunkatem. Możemy narysować krzywą dla podanych punktów. Po narysowanu program udostępna nam możlwość zmany położena punktów w sposób nteraktywny, (czyl po najechanu myszką na punkt można przycsnąć lewy przycsk myszy przecągnąć zaznaczony punkt w dowolne mejsce obszaru rysowana). Nowa krzywa po puszczenu przycsku zostaje odrysowana, zaś nowe współrzędne punktów zostają wprowadzone w mejsce gdze możemy je wpsać lub poprawć. Pod obszarem rysowana natomast wypsywane są wzory na funkcje tworzące weloman Bézera. Kolejną ważną funkcjonalnoścą prezentowanej aplkacj jest możlwość wzualzacj algorytmu Casteljau. 143
Rysunek 3 "Krzywa Bezera" - przykład algorytmu Casteljau Program ma możlwość wzualzacj algorytmu. Dzała na zasadze opóźneń. Program oblcza rysuje jeden krok, następne czeka określony czas, po czym wykonuje następny krok, aż do otrzymana ostatnego punktu. 7. Perspektywy dalszego rozwoju W zaprezentowanym programe można planuję dodać automatyczne skalowane obszaru rysowana. oraz dodane możlwośc rysowana welomanów różnego stopna. (Obecne program udostępna możlwość rysowana tylko krzywych trzecego stopna(. Ponadto planuję dodać możlwośc tworzena krzywych sklejanych, np. krzywych B-sklejanych. Zakończene W artykule przedstawam krzywe Bézera. Omawam ch zastosowane, metody tworzena. Ponadto prezentuję algorytm Casteljau, oraz mój program służący do tworzena wzualzacj krzywych parametrycznych algorytmu Casteljau. 144
Bblografa James D Foley, Andres van Dam, Steven K Frener, John F Hughes, Rchard L Phllps: Wprowadzene do grafk komputerowej. Jan Zabrodzk (tłumaczene). Warszawa: Wydawnctwa Naukowo- Technczne 2001, wydane druge. Zofa Matusewcz: Matematyka dla grafków komputerowych, Wydawnctwo: WSIZ 2008. Wkpeda Artykuł pt Algorytm de Casteljau http://pl.wkpeda.org/wk/algorytm_de_casteljau Artykuł pt Krzywa Bézera http://pl.wkpeda.org/wk/krzywa_bézera Stephen C. Perry: C#.Net, Wydawnctwo: Helon 2006r. 145