Java - prosta biblioteka graficzna G
19.11.2009 - Michał Karpiński
Wewnątrz bibliotekiZanim zaprogramujesz swoją pierwszą aplikację, musisz dowiedzieć się, co znajduje się wewnątrz biblioteki a przede wszystkim — śćiągnąć ją na dysk. Potrzebny jest tylko jeden plik o nazwie G.jar, który pobierzesz stąd. Biblioteka składa się z dwóch głównych pakietów:
Ważna uwaga: obiecałem łatwiejszy sposób renderowania grafiki, lecz nie mówiłem, że całkowicie żegnamy się ze starym Swingiem czy AWT — wciąż trzeba z nich korzystać np. żeby wyświetlić okienko. Przyjrzyjmy się bliżej istotnym fragmentom kodu:
Przepis na gwiazdkę:
Klasę Gwiazda umieszczamy w osobnym pliku lub jako klasę zagnieżdżoną w PierwszaScena. W powyższym kodzie od razu można dostrzec nową, tajemniczą klasę GSegment (linia 4). Bez zbędnego wstępu — klasa GObject nie jest najmniejszą jednostką graficzną w bibliotece i może przechowywać elementy typu GSegment (jak również inne GObject-y). Natomiast GSegment przechowuje wielokąty, a bardziej precyzyjnie - zbiór punktów płaszczyzny tworzący dany wielokąt. Kolejny obrazek powinien rozwiać wszelkie wątpiwości: Nasz obiekt składa się tylko z jednego segmentu. Wewnątrz konstruktora definiujemy nowy GSegment (linia 7) i następnie dodajemy go do obiektu. Sam obiekt nie będzie nic zawierał, dopóki mu tego nie narysujemy — do tego potrzebujemy umieścić w klasie GObject metodę draw (linia 11-13). Draw to specjalna metoda, która jest wywoływana za każdym razem, kiedy "płótno" potrzebuje przerysować obiekt. Wewnątrz funkcji — za pomocą odpowiednich metod — operujemy na segmentach i podobiektach danego obiektu. W szczególności metoda draw jest odpalana podczas dodania nowego obiektu do sceny. Można też wywołać ją ręcznie przy pomocy redraw(). W naszym przykładzie kluczowa jest linia 12, w której mówimy: "Niech segment star_ będzie gwiazdą. Umieścimy go na scenie we współrzędnych (220,220), odległość od środka figury do wierzchołka jego kątów wewnętrznych będzie równa 200 itd..." Dokładniej - metoda statyczna createStar() tworzy zbiór punktów wielokąta o kształcie gwiazdy według podanych parametrów. Pełna definicja:
Otrzymany zbiór punktów utożsamiamy ze zmienną star_ przy pomocy funkcji setGeometry. I to wszystko - nasza gwiazdka jest gotowa do wyświetlenia. Działanie funkcji createStar mogłeś już przetestować w aplecie na poprzedniej stronie. Spis wszystkich metod klasy Geometry znajdziesz tutaj. Oczywiście gwiazdka jest jedynie przykładem. Istnieją inne funkcje do tworzenia wielokątów (oraz elips). Można też budować własne, niestandardowe figury, wystarczy dostarczyć odpowiednim funkcjom zbiór punktów płaszczyzny przechowywany w tablicy. Zachęcam do głębszego przestudiowania klasy Geometry w pakiecie no.geosoft.cc.geometry Jeżeli chcesz skompilować program, który korzysta z biblioteki G, skopiuj plik G.jar do folderu gdzie znajduje się kod programu i w konsoli wpisz polecenie: javac –classpath G.jar;. NazwaPliku.java Następnie odpal poleceniem: java –classpath G.jar;. NazwaPliku Uwaga: użytkownicy linuksa zamiast średnika (;) muszą wpisać dwukropek (:). (3 ocen) |
Copyright © 2008-2010 Wrocławski Portal Informatyczny
design: rafalpolito.com