C_Builder_20_efektownych_programow_cbuiep.pdf
(
673 KB
)
Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
C++ Builder.
Autor: Andrzej Stasiewicz
ISBN: 83-7197-656-9
Noœnik: CD
Liczba stron: 224
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
20 efektownych programów
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
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¿liwoœci 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.
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
Wstęp ...............................................................................................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ółrzędnych...........................................................87
Rozdział 10. Konkurencja międzygatunkowa.........................................................97
Rozdział 11. Przyszłość 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 życie....................................................................................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ą nale y 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:
(70-%,# 0+6-+
STAŁE:
KPV /#:A+.
KPV K
4'#. 4 Z Z [ [
4
HQT K VQ /#:A+.
Z
4 UKP K
EQU K
[
4 EQU K
Z
4 UKP K
EQU K
[
4 EQU K
%QNQT 4'&
.KPG Z [ Z [
PGZV K
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 końców
linii, by zamknięta w pętli całość zło ył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 gwoździków i rozpięła między nimi 500 czarnych nici.
Pozycje gwoździkó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:
KPENWFG XENJ
RTCIOC JFTUVQR
KPENWFG HPKEKJ
KPENWFG OCVJJ
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
XQKF AAHCUVECNN 6(QTO(QTO2CKPV 61DLGEV 5GPFGT
]
KPV K
FQWDNG Z Z [ [ 4 # $
4 %NKGPV9KFVJ
# %NKGPV9KFVJ
$ %NKGPV*GKIJV
HQT
]
Z
[
Z
[
K K K
4 UKP K
EQU K
4 EQU K
4 UKP K
EQU K
4 EQU K
/QXG6Q Z
.KPG6Q Z
# [
# [
$
$
5
_
_
%CPXCU
%CPXCU
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. Zauwa my 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 mo liwości modyfikacji algorytmu. Przede wszystkim
włó my trochę koloru w grafikę rozpinanej nici. Mam taki pomysł:
XQKF AAHCUVECNN 6(QTO(QTO2CKPV 61DLGEV 5GPFGT
]
FQWDNG V Z Z [ [ 4 # $
4 %NKGPV9KFVJ
# %NKGPV9KFVJ
$ %NKGPV*GKIJV
HQT
]
Z
[
Z
[
V /A2+ V /A2+ V /A2+
4 UKP V
EQU V
4 EQU V
4 UKP V
EQU V
4 EQU V
2GP
%QNQT V /A2+ ! EN$NWG EN4GF
/QXG6Q Z # [ $
.KPG6Q Z # [ $
%CPXCU
%CPXCU
%CPXCU
Z
[
Z
[
4 UKP V
4 EQU V
UKP V
4 UKP V
4 EQU V
UKP V
C:\Andrzej\PDF\C++ Builder. 20 efektownych programów\skład!!.doc
5
Plik z chomika:
Ksiazki_20
Inne pliki z tego folderu:
Algorytmy_struktury_danych_i_techniki_programowania_Wydanie_VI_algor6.pdf
(3460 KB)
100_sposobow_na_Visual_Studio_100vis.pdf
(1292 KB)
Czysty_kod_w_C_17_Oprogramowanie_latwe_w_utrzymaniu_czkc17.pdf
(1741 KB)
ABC_programowania_w_C_abccpp.pdf
(344 KB)
C_50_efektywnych_sposobow_na_udoskonalenie_Twoich_programow_cp50sp.pdf
(1825 KB)
Inne foldery tego chomika:
3ds max
Access
Acrobat
After Effects
Agile - Programowanie
Zgłoś jeśli
naruszono regulamin