Vježbe 9

Simulacija fizike

Primjer 1: Numerička integracija jednadžbi gibanja materijalne točke Eulerovom metodom na primjeru 1D harmoničnog oscilatora. Kod pokretanja programa biraju se početni uvjeti (početni položaj i početna brzina materijalne točke), 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.cpp
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.cpp
U demo programu GL4opruge.cpp 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:
9.1. Kosi hitac.
  1. Modificirajte demo program GL4opruge.cpp u GLtop.cpp 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.
  2. Implementirajte mogućnost da se kut ispaljivanja podešava preko tipkovnice. Top aproksimirajte plaštom valjka, te ga smjestite u donji lijevi kut zaslona.
  3. 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.
  4. 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.