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:
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.