Diplomksi rad br.215 - Modeliranje i simulacija deformabilnih objekata

Programsko rješenje - Deforma

U ovom radu cilj je bio proučiti modele deformabilnih elemenata i implementirati programsko rješenje koje će simulirati ponašanje navedenih entiteta. Programsko okruženje u kojem je aplikacija Deforma razvijana je Visual Studio 2010. Izabrani programski jezik je C#. Ovaj izbor učinjen je kako bi se što lakše predstavio zadani koncept.

Za iscrtavanje je izabrana OpenTK biblioteka. Ona implementira aplikacijsko programsko sučelje (engl. Application programming interface, API) OpenGL te omogućava korištenje u programskom jeziku C#. OpenGL je otvorena standardna biblioteka za pisanje aplikacija koje koriste 2D i 3D računalnu grafiku.

Deforma je napravljena prema praksi dobrog objektnog oblikovanja. Takav način omogućuje da se postojeće rješenje može lako nadograditi novim modulima, dodavati nove, te prenijeti dio ili u potpunosti model domene u novu aplikaciju. Aplikacija je napisana pomoću oblikovnog obrasca MVP (engl. Model View Presenter).

MVP oblikovni obrazac

Model Pogled Prezenter je oblikovni obrazac koji je izveden iz obrasca Model Pogled Kontroler (engl. Model View Controller, MVC). MVP je za razliku od poznatijeg oblikovnog obrasca MVC bolje prilagođen radu sa Windows Formama pomoću kojih je napravljena aplikacija.

Oblikovni obrazac Model Pogled Prezenter već u nazivu sadrži građevne jedinice na temelju kojih se grade aplikacije koje ga primjenjuju. Model označava model domene, odnosno dio aplikacije u kojem se nalazi logika problema koji se pokušava riješiti. Pogled je dio koji je zaslužan za interakciju sa korisnikom. U njemu se nalazi sučelje, te je to jedini dio aplikacije kojeg korisnik vidi. Prezenter je zadužen za povezivanje modela i pogleda. Na temelju korisnikovih akcija nad pogledom, kontroler odlučuje koje će ulaze poslati pojedinim dijelovima modela. Model šalje izlaze kontroleru, a kontroler bira koji će dijelovi pogleda biti prikazani korisniku za najbolji mogući prikaz dobivenih rezultata.


Slika 1. Prikaz oblikovnih obrazaca MVP i MVC




Aplikacija deforma

Deforma je osmišljena kako bi se pomoću konačnih elemenata modelirali elastični i plastični objekti. Aplikacija je također odijeljena na omogućavanje dvodimenzionalnih i trodimenzionalnih simulacija. Na scenu svake od tih simulacija moguće je dodavati deformabilne objekte, te jednostavne nedeforrmabilne objekte koji služe kako bi se omogućili sudari i simulirale deformacije. U aplikaciji je implementirana i sila gravitacije koja uvodi dinamiku u sustav i u svakom trenutku simulacije pomiče deformabilne objekte.


Slika 2. Prikaz aplikacije Deforma




Upute za korištenje aplikacije

Pokretanjem aplikacije otvara se intuitivno korisničko sučelje preko kojeg se mogu dodavati razni tipovi deformabilnih objekata, jednostavni objekti koji predstavljaju zapreke gibanju deformabilnih objekata. Nakon dodavanja svih željenih objekata simulacija se može pokrenuti nakon čega se počinje prikazivati simulacija u prozoru na desnoj strani sučelja.

Pomoću tipaka W, S, A, D, R i F može se mjenjati položaj očišta, a pomoću tipki 1, 2 i 3 način prikazivanja iscrtavanja.