W wierszu 36...

Jak cię złapią, to znaczy, że oszukiwałeś. Jak nie, to znaczy, że posłużyłeś się odpowiednią taktyką.
kreowany jest obiekt o nazwie poprzez wywołanie na jego rzecz konstruktora klasy . W wierszu 37. powtarzamy czynności z wiersza 36., ale dla
obiektu klasy , z tym jednak że tu (dla odmiany) wykreowany obiekt wskazy-
wany jest nie nazwą, ale wskaźnikiem . Zauważmy, że ostatni argument w wywołaniu
konstruktora wynosi: 1 w wierszu 36. i 0 w wierszu 37. Zatem, w przypadku obiektu
będzie działać mechanizm, który spowoduje obcinanie (clipping) wychodzących poza
podokno lokalnych części rysowanych figur geometrycznych lub napisów. W przypadku
okna tak nie będzie.
W wierszu 38. wywołujemy funkcję , a w wierszu 39. funkcję na rzecz
obiektu . Ponieważ jest nazwą obiektu, więc w wierszach 38. i 39. używamy ope-
ratora kropki.
W wierszach 40. i 41. wywołujemy funkcje oraz na rzecz obiektu wskazywanego wskaźnikiem . Stąd konieczność użycia operatora strzałki w tych wywołaniach funkcji.
Przed zakończeniem programu należy zamknąć tryb graficzny poprzez wywołanie
funkcji * w wierszu 42.
Po skompilowaniu, konsolidacji i wykonaniu programu w trybie Windows lub MS-DOS otrzymujemy ekran, jaki przedstawiony został na rysunku 9.1.
Rysunek 9.1.
Ekran otrzymany
w wyniku wykonania
programu p9_1.exe
C:\Andrzej\PDF\ABC programowania w C++\r09.doc
135
136
Czć I ¨ Wprowadzenie do jzyka C++
Podokno pierwsze pracuje w trybie obcinania figur wystających poza obszar podokna
lokalnego, a okno drugie w trybie bez obcinania.
Zauważmy, że elipsa obiektu została obcięta na granicy podokna lokalnego ustala-
nego funkcją biblioteczną w wierszu 55. programu. Ponieważ mechanizmu
tego nie wywołano przy kreacji obiektu (w wierszu 37.), więc linia narysowana na
rzecz tego obiektu wychodzi poza granice okna lokalnego (viewport).
Wykonanie powyższego programu na innym komputerze jest możliwe tylko wtedy, gdy
sterowniki grafiki EGAVGA znajdują się również w katalogu C:\Bc5\Bgi, tzn. takim jak
w wierszu 9. programu. W przeciwnym razie należy ponownie skompilować program,
uaktualniając ścieżkę dostępu w wierszu 9. programu. Innym rozwiązaniem, nie wy-
magającym rekompilacji, byłoby podanie w wierszu 9. programu pustej ścieżki do-stępu do sterowników grafiki (czyli 44). Wtedy program (w czasie wykonania) poszu-
kuje sterowników w katalogu bieżącym. Mając tak skompilowany program, przed
jego wykonaniem należałoby skopiować plik Egavga (z zasobów Borland) do bieżą-
cego katalogu (w którym znajduje się p9_1.exe) i wtedy dopiero go wykonać.
Drugi sposób udostępniania programowi sterowników grafiki (tzn. sposób z tzw.
wlinkowaniem czyli trwałym dołączeniem sterowników EGAVGA) pokażemy w pro-
gramie p9_1wg.cpp (odmiana programu p9_1.cpp) zlokalizowanym w katalogu p9_1wg
(o takiej samej nazwie jak program).
Najpierw należy uzyskać plik Egavga.obj. W tym celu do bieżącego katalogu, np. C:\
Bcpp5\p9_1wg, należy skopiować program Bgiobj.exe (z zasobów Borland), np. z ka-
talogu C:\Bc5\Bgi. Kopiowanie to przeprowadzamy poza środowiskiem programowania
Borland, np. wykorzystując program Eksplorator Windows.
Następnie (nadal korzystając z programu Eksplorator Windows) otwieramy bieżący katalog, po czym wskazujemy myszą podane dalej pola i wpisujemy: Start|Uruchom|
Bgiobj C:\Bg5\Bgi\Egavga. Po wykonaniu i zamknięciu programu Bgiobj.exe, w kata-
logu C:\Bcpp5\p9_1wg powinien się pojawić plik Egavga.obj. Zamykamy program
Eksplorator Windows.
Uruchamiamy środowisko programowania Borland C++ i tworzymy nowy projekt
o nazwie p9_1wg, dla platformy DOS w katalogu p9_1wg, z tym jednak że w oknie New
Target zaznaczamy kwadratowe pole BGI (rysunek 2.2).
Wskazując myszą na ikony File|Open odszukujemy program p9_1.cpp (w katalogu
p9_1) i zapisujemy go w katalogu p9_1wg pod nazwą p9_1wg.cpp.
W oknie Project naprowadzamy kursor na kwadrat z minusem tuż przed nazwą
p9_1wg.exe i naciskamy prawy przycisk myszy. Pojawia się lista wyboru, na której lewym przyciskiem myszy wskazujemy polecenie Add node. Pojawi się okno Add to
Project List. W polu Pliki typu rozwijamy listę i wybieramy opcję All files (*.*). Myszą wskazujemy na Egavga.obj, jak pokazano na rysunku 9.1a.
136
C:\Andrzej\PDF\ABC programowania w C++\r09.doc
Rozdział 9. ¨ Grafika punktowa
137
Rysunek 9.1a.
Okno środowiska
programowania
Borland w czasie
dodawania do już
utworzonego projektu
(w bieżącym katalogu)
pliku Egavga.obj w celu
trwałego dołączenia
sterowników grafiki
Po wskazaniu myszą przycisku Otwórz, okno Add to Project List znika, a w oknie Project pojawia się nowy węzeł (node) egavga.obj, jak pokazano na rysunku 9.1b.
Rysunek 9.1b.
Fragment okna
środowiska
programowania
Borland po dodaniu
do projektu pliku
Egavga.obj
Uaktywniamy (poprzez kliknięcie) okno z plikiem programu p9_1wg.cpp i dokonujemy w nim modyfikacji polegającej na uruchomieniu funkcji zamiast
. Po skompilowaniu i konsolidacji otrzymujemy program, którego integralną częścią są sterowniki grafiki EGAVGA. Wykonanie tego programu prowadzi do ta-kiego samego wydruku, jak wydruk przedstawiony na rysunku 9.1.
Pozycjonowanie obiektu
za pomocą myszy
Do przesuwania obiektów takich jak figury geometryczne można użyć myszy, podobnie
jak zostanie to zrobione w programie p9_2.cpp. W programie tym dostęp do sterow-
ników grafiki realizujemy sposobem przedstawionym w drugiej części poprzedniego
podrozdziału, tzn. poprzez wywołanie funkcji . (Funkcja jest tu
nieczynna). W tym celu uruchamiamy projekt w katalogu p9_2 z zaznaczeniem pola
BGI (widocznego na rysunku 2.2) i z dodaniem węzła (node) w postaci pliku egavga.
obj (jak na rysunku 9.1b). Plik ten można np. przegrać z katalogu p9_1wg lub wskazać
go w tym katalogu w czasie dołączania nowego węzła.
Oczywiście można go też wykreować od nowa za pomocą programu Bgiobj.exe, tak jak
zrobiono to w drugiej części poprzedniego podrozdziału.
C:\Andrzej\PDF\ABC programowania w C++\r09.doc
137
138
Czć I ¨ Wprowadzenie do jzyka C++
Do obsługi myszy zdefiniujemy klasę $5 zawierającą funkcje własne: $ (do uru-
chomienia myszy), $ (do ujawniania kursora myszy), ,$ (do ukrycia kursora myszy) i 65$ (do zwrotu aktualnych współrzędnych kursora myszy). W funkcji
utworzymy tylko jeden obiekt o nazwie klasy (typu) . Obiekt ten jest widocz-
nym na rysunku 9.2a prostokątem o wymiarach zdefiniowanych za pomocą wartości
argumentów w wywołaniu konstruktora klasy w wierszu 49. Na rzecz tego obiektu wywołujemy funkcję własną klasy . W funkcji tej definiujemy podokno z lokalnym układem współrzędnych, pokrywające się z utworzonym właśnie
Powered by wordpress | Theme: simpletex | © Jak cię złapią, to znaczy, że oszukiwałeś. Jak nie, to znaczy, że posłużyłeś się odpowiednią taktyką.