C++ Builder 20 efektownych programow.pdf
(
683 KB
)
Pobierz
C:\Andrzej\PDF\C++ Builder. 20 efektownych programów\1 strona.cdr
IDZ DO
PRZYK£ADO
WY ROZDZIA£
C++ Builder.
20 efektownych programów
SPIS TRECI
KATALOG KSI¥¯EK
Autor: Andrzej Stasiewicz
ISBN: 83-7197-656-9
Nonik: CD
Liczba stron: 224
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Ksi¹¿ka zawiera bardzo przystêpne opisy niezwykle efektownych zjawisk z pogranicza
ró¿nych nauk przyrodniczych oraz ich komputerowe realizacje w dialekcie C++ Builder
firmy Borland. Stanowi ona zbiór æwiczeñ do wykorzystania na szkolnym kó³ku
komputerowym, ale zapewne zainteresuje te¿ wyk³adowców i studentów kierunków
przyrodniczych. Od Czytelnika wymagamy wiedzy na poziomie szko³y redniej,
a niekiedy zaledwie gimnazjum. Opi-sywane zagadnienia czêsto s¹ ledwie zarysowane
i pozostawiaj¹ Czytelnikowi ogromne mo¿liwoci dalszego, samodzielnego
eksperymentowania.
W realizacji pomys³ów Autor po mistrzowsku pos³uguje siê najprostszym, a przy tym
w pe³ni obiektowym i bardzo nowoczesnym sposobem programowania komputerów.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Notka wydawnicza .............................................................................5
Wstp ...............................................................................................7
Rozdział 1. Dywany na ustalonej powierzchni........................................................9
Rozdział 2. Grafika rozpinanej nici......................................................................17
Rozdział 3. Serwetka z cykloid...........................................................................23
Rozdział 4. Skalowanie......................................................................................31
Rozdział 5. Składanie drga' poprzecznych..........................................................43
Rozdział 6. Sumowanie drga'.............................................................................51
Rozdział 7. Dywany iterowane............................................................................61
Rozdział 8. Dywany afiniczne .............................................................................69
Rozdział 9. Grafika układu współrzdnych...........................................................87
Rozdział 10. Konkurencja midzygatunkowa.........................................................97
Rozdział 11. Przyszło/0 nie do przewidzenia .......................................................111
Rozdział 12. Algorytm barwy fizycznej................................................................119
Rozdział 13. Grafika wykładników Lapunowa......................................................127
Rozdział 14. Fraktal Mandelbrota.......................................................................137
Rozdział 15. Eksplorator Mandelbrota................................................................147
Rozdział 16. Otwarty kosmos.............................................................................161
Rozdział 17. Gra w 8ycie....................................................................................171
Rozdział 18. Epidemia .......................................................................................185
Rozdział 19. Mrowisko pełne automatów............................................................201
Rozdział 20. Jednowymiarowy automat komórkowy ............................................215
Rozdział 2.
Jest pod Białymstokiem artystka, która niegraficznymi technikami tworzy dziwne
grafiki. Wbija ta niemłoda ju babcia setki gwo dzików, a potem rozpina na nich ko-
lorowe nitki. Nie jest to jednak takie łatwe, jak mogłoby si$ wydawa% — artystce
z pewno'ci( naley si$ uznanie. Sił( tych obrazów jest ich matematyczna precyzja
— drobne niejednorodno'ci w prowadzeniu nici, nierównomierne odst$py nasze oczy
wychwytuj( natychmiast.
B$dziemy wbija% gwo dziki w wirtualn( desk$ wirtualnego obrazu. Wbi% gwo dzik
b$dzie znaczyło tyle, co wyliczy% jakim' algorytmem jego współrz$dne (x, y). Roz-
pi(% nitk$ mi$dzy dwoma gwo dzikami b$dzie znaczyło tyle, co poci(gn(% kolorow(
lini$ od jednego punktu do drugiego.
Algorytm rozpinania nici musi mie% jaki' taki kształt:
STAŁE:
ZMIENNE:
!"#$!%"#$
!%"#$
&!!"#$!%"#$
&!%"#$
' (
)
Po wst$pnych deklaracjach, ustaleniu liczby rozpinanych nici MAX_IL, wyliczamy
cztery współrz$dne dwóch gwo dzików, a potem rozpinamy lini$ — nitk$ mi$dzy
nimi. Zmienna R oraz cała ta pl(tanina funkcji trygonometrycznych to kaprys progra-
misty. Cała sztuka polega na dobraniu takich formuł na cztery współrz$dne ko0ców
linii, by zamkni$ta w p$tli cało'% złoyła si$ na mił( oku grafik$. Znów nie ma ad-
nych reguł, gwarantuj(cych sukces artystyczny. Nazwijmy to programowaniem eks-
perymentalnym...
C:\Andrzej\PDF\C++ Builder. 20 efektownych programów\skład!!.doc
3
4
C++ Builder. 20 efektownych programów
Spróbujmy zaimplementowa% nasz algorytm w dialekcie C++ Buildera. Jak zwykle,
zaczynamy od wydania polecenia New Application, po którym Builder oczyszcza
swoje wn$trze z dotychczasowych programów i jest gotów do pracy nad nowym za-
gadnieniem.
Rysunek 6.
Babcia wbiła w wirtualn desk 1000 gwodzików i rozpiła midzy nimi 500 czarnych nici.
Pozycje gwodzików nie s przypadkowe — dostarcza je niezbyt zło$ona kombinacja funkcji
trygonometrycznych.
W okienku edytora, które na pocz(tek jest ukryte pod okienkiem z form(, od razu do-
klejmy nagłówek modułu z algorytmami matematycznymi. Oto fragment kodu, który
powinni'my najpierw zlokalizowa% w górnej cz$'ci pliku CPP, potem uzupełni%
o fraz$ doklejania nagłówka:
##&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
*%'+,)-.%'$/0
*1 2342/, "1
*%'+,)5%$/5
$$$
Grafik$ oczywi'cie umie'cimy w uzgodnionej z systemem operacyjnym funkcji — reak-
cji na zdarzenie OnPaint — chc$ rysowa%. Tylko wtedy nasz program automatycznie
odnowi swoj( grafik$, gdy jego okienko nagle wyłoni si$ spod Worda czy Excela.
Odszukajmy wi$c Inspektora obiektów, przejd my na jego zakładk$ Events — zda-
rzenia — i dwukrotnym klikni$ciem wygenerujmy funkcj$ — reakcj$ na zdarzenie
OnPaint. Gdy Builder wykreuje puste ciało tej funkcji, niezwłocznie spiszmy jej algo-
rytm, przekładaj(c wcze'niejsze, ogólne frazy na dialekt C++ Buider:
4
C:\Andrzej\PDF\C++ Builder. 20 efektownych programów\skład!!.doc
Rozdział 1.
Tytuł rozdziału
5
!! "#$%&'
6
,+7')8
')9,/#
')9,/#
8'):)3/#
-;<<
6
!"#$!%"#$
!%"#$
&!!"#$!%"#$
&!%"#$
()*+,-,.
()*,-,.
=
=
Jest to w zasadzie ten sam algorytm, ale wypowiedziany w innym j$zyku i osadzony
w konkretnym okienku. Zmienne R, A i B maj( znaczenie czysto techniczne — R rozci(-
ga grafik$, A i B j( pozycjonuje w okienku Windows. Parametry ClientWidth i Client-
Height zadaj( rozpi$to'% graficznej powierzchni okienka. Zauwamy te, e u Borlanda
nie ma czteroargumentowej funkcji Line(), za to jest para funkcji MoveTo() — id do
punktu i LineTo() — ci(gnij stamt(d lini$. Ta para funkcji z powodzeniem zast$puje
klasyczn( funkcj$ Line().
Pora na wskazanie kilku moliwo'ci modyfikacji algorytmu. Przede wszystkim
włómy troch$ koloru w grafik$ rozpinanej nici. Mam taki pomysł:
!! "#$%&'
6
,+7')8
')9,/#
')9,/#
8'):)3/#
&>-><>#
6
!"!%"
!%"
&!"!%"
&!%"
()*")*( /0+"123.!4
()*+,-,.
()*,-,.
!"
!%"!"
&!"
&!%"!"
C:\Andrzej\PDF\C++ Builder. 20 efektownych programów\skład!!.doc
5
Plik z chomika:
Ravel25
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
(X) HTML
algorytmy i struktury danych
asembler
C++
Core JAVA2 Podstawy
Zgłoś jeśli
naruszono regulamin