[ Pobierz całość w formacie PDF ]
IDZ DO
PRZYK£ADOW
C++Builder. Symulacje
SPIS TRECI
komputerowe
KATALOG KSI¥¯EK
Autor: Andrzej Stasiewicz
ISBN: 83-7361-052-9
Format: B5, stron: 238
Zawiera CD-ROM
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Nowoczesne techniki programowania i projektowania pozwalaj¹ pisaæ z³o¿one aplikacje
tak¿e osobom nie bêd¹cym informatykami. Pasjonatom nauk przyrodniczych przychodzi
z pomoc¹ projektowanie obiektowe: dziêki zastosowaniu gotowych obiektów mog¹ oni
symulowaæ komputerowo zjawiska wystêpuj¹ce w przyrodzie. Programowanie
zorientowane obiektowo wymaga przede wszystkim bardzo dok³adnych opisów
funkcjonalnych obiektów; szczegó³y techniczne, realizatorskie i znajomoæ ich konstrukcji
wewnêtrznej nie s¹ tu wa¿ne.
Ksi¹¿ka C++Builder. Symulacje komputerowe przedstawia kilkanacie programów
symuluj¹cych rozmaite zjawiska wystêpuj¹ce w przyrodzie. Programy te zosta³y napisane
w jêzyku C++ (u¿yto dialektu C++Builder Borlanda). Zastosowano w nich gotowe klasy,
które mo¿esz odnaleæ na do³¹czonym do ksi¹¿ki kr¹¿ku CD, mo¿na je rozbudowywaæ
i wykorzystywaæ we w³asnych programach. Osoby zainteresowane tajnikami
programowania obiektowego poznaj¹ szczegó³y konstrukcji obiektów, przyrodnicy mog¹
pomin¹æ bardziej techniczne fragmenty i skoncentrowaæ siê na modelowaniu zjawisk
przyrodniczych.
Programy opisane w ksi¹¿ce dotycz¹:
• Widma wiat³a bia³ego
• Drgañ i fal prostych
• Fal na wodzie i ich interferencji
• Interferencji wiat³a
• Postrzegania g³êbi i geometrii 3D
• Fotografii relatywistycznej
• Algorytmów wzrostu
• Tworzenia wirtualnych przestrzeni za pomoc¹ techniki ledzenia promieni (ray-tracing)
Programowanie obiektowe jest to jedyna technika szybkiego tworzenia aplikacji
z wykorzystaniem istniej¹cych, uniwersalnych algorytmów. Jeli jeste interesujesz siê
fizyk¹ czy biologi¹, ksi¹¿ka udowodni Ci, ¿e nie musisz koñczyæ studiów informatycznych,
by modelowaæ komputerowo interesuj¹ce Ciê zjawiska.
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
Spis treci
Wstp ...............................................................................................5
Rozdział 1. Widmo wiatła białego.......................................................................7
Wszystkie barwy tczy..............................................................................................7
Rozdział 2. Drgania i fale proste ........................................................................15
Troch fizyki..........................................................................................................16
Parametry fali prostej ..............................................................................................16
Sumowanie dwóch fal prostych................................................................................20
Sumowanie drga% prostopadłych..............................................................................23
Suma fal i kształtowanie impulsów...........................................................................25
Biorytmy................................................................................................................28
Rozdział 3. Fale na wodzie.................................................................................31
Powierzchniowa fala płaska.....................................................................................31
Fala kolista.............................................................................................................36
Interferencja fal na wodzie.......................................................................................41
Rozdział 4. Interferencja wiatła........................................................................47
Do/wiadczenie Younga ...........................................................................................47
Przestrzenny obraz interferencji /wiatła.........................................................................54
Edytor układu otworków .........................................................................................62
Synteza obrazu rzeczywistego z obrazu interferencyjnego ..........................................69
Filtracja przestrzenna ..............................................................................................72
Rozdział 5. Postrzeganie głbi ...........................................................................77
Trzy techniki syntezy głbi ......................................................................................78
Geometria postrzegania 3D......................................................................................82
Algorytmy syntezy głbi..........................................................................................84
Sze/cian 3D......................................................................................................87
Kula 3D ...........................................................................................................89
Eksperymenty z baz6 ..............................................................................................92
Porz6dkowanie sceny..............................................................................................95
Rozdział 6. Fotografia relatywistyczna ................................................................103
Teoria fotografii relatywistycznej...........................................................................104
Obiekt TRelatyw3d...............................................................................................107
Relatywistyczny krzy9.....................................................................................112
Relatywistyczna kostka ...................................................................................114
4
C++Builder. Symulacje komputerowe
Zderzenie ze /cian6...............................................................................................116
Relatywistyczna autostrada..............................................................................119
Relatywistyczna kula.......................................................................................120
Relatywistyka a k6t widzenia obiektywu....................................................................122
Twoja fotografia ...................................................................................................125
Relatywistyczna stereoskopia.................................................................................130
Rozdział 7. Algorytm wzrostu...........................................................................137
Rozwijanie tekstu .................................................................................................137
Interpretacja formuły tekstowej..............................................................................140
Bardziej zło9one rozwinicia .................................................................................145
Wzrost 3D ...........................................................................................................149
L system, czyli hodowla form ro/linnych...................................................................153
Ro/linny /wiat Lindenmayera ................................................................................159
Jeszcze wicej parametrów....................................................................................162
Rozdział 8. Obrazy wietlnego promienia..........................................................175
Idea techniki /ledzenia promieni.............................................................................176
Wyznaczenie promienia rysuj6cego........................................................................177
Promie% szuka obiektów........................................................................................182
Promie% wyrusza w dalsz6 drog............................................................................188
Kolory .................................................................................................................192
Zabudowa sceny...................................................................................................194
Implementacja......................................................................................................195
Co dalej?........................................................................................................213
Dodatek A Funkcjonalne opisy klas.................................................................215
Klasa TSkalowanie ...............................................................................................215
Klasa TDiagram....................................................................................................217
Klasa TWidmo .....................................................................................................217
Klasa TWykresPseudo3d.......................................................................................217
Klasy TPunkt, TLinia, TWektor.............................................................................220
Klasa T3d............................................................................................................221
Klasa TWykres3d.................................................................................................222
Klasa TStereo.......................................................................................................224
Klasy TRelatyw3d i TRelatywStereo......................................................................224
Klasa TObraz.......................................................................................................224
Literatura ......................................................................................229
Skorowidz......................................................................................231
Rozdział 3.
Fale na wodzie
Poprzedni rozdział był powicony doskonaleniu umiejtnoci włczania obiektów
i
do swoich aplikacji. Pretekstem były nieskomplikowane zja-
wiska falowe, konkretnie tzw. fale proste. Teraz zmierzymy si z nieco powa"niejszym
zagadnieniem — falami powierzchniowymi. Fizyka opisywanych zjawisk nie bdzie
przy tym zbyt trudna, poniewa" ograniczymy si do rzeczy zapewne znanych. Jednak
komputerowa wizualizacja fal powierzchniowych bdzie wymagała włczenia do nasze-
go warsztatu nowych obiektów, zdolnych do wykrelenia obrazów płacht funkcyjnych.
Powierzchniowa fala płaska
Powierzchnia wody jest dwuwymiarowym, spr"ystym orodkiem, w którym mog
rozchodzi' si zaburzenia. Czsteczka (w rzeczywistoci raczej grupa takich czsteczek)
wody wytrcona, np. kijem, z poło"enia równowagi drga rytmicznie w gór i w dół. Za
porednictwem sił oddziaływania midzyczsteczkowego porusza inne, ssiednie cz-
steczki. Wówczas mamy do czynienia z rozchodzeniem si fali na powierzchni wody.
Przedstawimy taki obraz na ekranach monitorów. Nie bdziemy przy tym modelowa'
tych wszystkich czsteczek i ich oddziaływa., tylko wymylimy matematyczny kształt
dwuwymiarowej funkcji, której wykres mo"liwie wiernie odda obraz prawdziwej fali.
Aplikacja poka"e obraz powierzchniowej fali płaskiej. Taka fala powstaje wtedy, gdy
czynnik zaburzajcy spokojn tafl wody ma kształt długiej linijki. Gdyby nagle po-
ruszyła si jedna ze cian basenu, po powierzchni wody zaczłaby wdrowa' fala pła-
ska. Termin fala płaska — cokolwiek oznacza — powstał głównie po to, by odró"ni'
tak fal od powierzchniowej fali kolistej. Do fal kolistych przejdziemy potem, a teraz
włczmy komputery.
Zaczniemy od eksploatacji nieco zubo"onego algorytmu, zamknitego w klasie
. Algorytm ten, opisany ze strony funkcjonalnej w dodatku na ko.cu ksi"ki,
słu"y do prostego obrazowania powyginanych, dwuwymiarowych powierzchni (rysu-
nek 3.1). Teraz skoncentrujmy si na sposobie włczania go do aplikacji.
32
C++Builder. Symulacje komputerowe
Rysunek 3.1. Obiekt TWykresPseudo3d nie nadaje si do bezporedniego wykorzystania,
bo potrafi tylko wykrela błahe, proste, płaskie powierzchnie. Na szczcie, funkcja
odpowiedzialna za wykres jest zapowiedziana jako wirtualna, a to znaczy, $e powinnimy
utworzy obiekt potomny, który przejmie cały ustrój TWykresPseudo3d, ale z własn',
ju$ niewirtualn' funkcj', odpowiadaj'c' za kształt wykresu
Przypomnijmy raz jeszcze schemat działania, prowadzcy do uzyskania stanu zerowego
aplikacji z dodatkowym modułem. Nale"y:
zało"y' nowy katalog roboczy,
skopiowa' do niego pliki nowego modułu, tym razem pseudo3d.h i pseudo3d.cpp
bdce nonikiem klasy
,
uruchomi' Buildera i włczy' do projektu pseudo3d.cpp,
dopisa' fraz
,
zapisa' wszystko w katalogu roboczym.
Spróbujmy wszystko zrobi' tak jak dotychczas. Wygenerujmy funkcj — reakcj na
zdarzenie
(jest to funkcja odpowiedzialna za grafik okienka). Zadeklarujmy
tam egzemplarz klasy
, tak jak podpowiada to intuicja i dotychczasowe
dowiadczenie z obiektami
albo
. Wreszcie, uruchomimy
krelcy wykres:
!"#$%& '(%&)'(*
%&)'(*++,
-."./$,""'
'&$-$,,&0&1
%2(342$,0&"
%2(35$,
6
6
Konstruktor tworzy obiekt typu
. Publiczna funkcja
!"#
rozpoczyna bieg algorytmu. Publiczny
dostarcza współrzdne wszystkich od-
cinków, które maj zło"y' si na wykres. Tylko gdzie jest nasza fala płaska?
[ Pobierz całość w formacie PDF ]