Vježbe 8
Simulacija fizike
Primjer 1:
Numerička integracija jednadžbi gibanja materijalne točke Eulerovom metodom
na primjeru 1D harmonijskog oscilatora. Kod pokretanja programa bira se vremenski
korak (korak integracije) i učestalost ispisa vrijednosti fizikalnih veličina
koje opisuju sustav. U prvom stupcu je vrijeme. U drugom stupcu je ukupna energija
koja mora biti očuvana, tako da je odstupanje od početne vrijednosti pokazatelj
(i mjera) nepreciznosti kod numeričke integracije. U trećem i četvrtom stupcu
ispisuju se trenutni položaj i brzina materijalne točke. Implementacija je u
programskom jeziku C++ kako bi se iskoristile prednosti objektno-orijentiranog
programiranja - materijalna točka je klasa, s masom, položajem i brzinom kao svojstvima
(atributima), te pomakom kao metodom koja implementira numeričku integraciju jednadžbi gibanja uslijed djelovanja zadane sile.
Izvorni kod:
ho.C
Primjer 2:
Simulacija fizike - gibanje mase obješene na četiri opruge. Za numeričku
integraciju ponovo se koristi Eulerova metoda. Položaj i brzina su vektori,
a klasa
kugla
izvedena je iz klase
mt
(materijalna
točka). Implementacija u programskom jeziku C++:
GL4opruge.C
U demo programu
GL4opruge.C
mogu se interaktivno
uključivati/isključivati uobičajene opcije (vidjeti
Vježbe 7 - Primjer 1), a
dodana je i mogućnost uključivanje/isključivanja djelovanja sile teže:
- 'g' - isključuje djelovanje sile teže
- 'G' - uključuje djelovanje sile teže.
8.1. Kosi hitac. Modificirajte demo program GL4opruge.C
u
GLtop.C
koji će simulirati kosi hitac. Kugla (materijalna točka)
ispaljuje se iz topa nekom početnom brzinom i pod nekim kutem. Na kuglu djeluje
sila teža. Implementirajte mogućnost da se kut ispaljivanja podešava preko
tipkovnice. Top aproksimirajte plaštom valjka, te ga smjestite u donji lijevi
kut zaslona.
8.2. Detekcija sudara. Dodajte još jednu kuglu na drugoj strani zaslona te
implementirajte detekciju sudara. Odabirom kuta ispaljivanja pokušajte pogoditi drugu
kuglu, te u slučaju sudara simulirajte eksploziju.
8.3. Elastični sudar. Negdje na pola puta između topa i ciljne kugle postavite
horizontalnu platformu od koje će se ispaljena kugla moći odbiti natrag u zrak.
Pretpostavljamo elastični sudar - komponenti brzine okomitoj na platformu mijenja
se predznak.