«« ( Date ) »» // «« ( Thread ) »» // csidc - 2004

Simulacija...

by Stojlljkovic Predrag
četvrtak, 29. januar 2004 - 05:15.

Kao prvo:
Gde su svi danas na sastanku? Bili smo jedino Caslav i ja, i dogovorili smo se neke stvarcice, ali sta je sa ostalima?

Kao drugo:
Okacio sam na plone deo simulacije koji sam odradio u C++-u. Preko tastature se mogu uneti objekti u praznu sobu (bez zidova) tako sto se unose temena objekata onim redom kojim bi trebalo da budu spojena (poslednje uneto teme se smatra povezanim sa prvim unetim). Zatim se moze izvrsiti "skeniranje" prostorije sa odredjenom rezolucijom (npr. 180 tacaka iliti 1 stepen). Kao rezultat se dobijaju tacke od kojih bi se odbio signal poslat iz koordinatnog pocetka u odgovarajucim smerovima (zavisno od rezolucije). Rezoluciju je moguce podesavati. Tacke koje se dobijaju kao rezultat nalaze se u gornjoj poluravni i ne ukljucuju x-osu. Rezultat je moguce smestiti u datoteku, kao i podatke o objektima u sobi. Moguce je translirati ili rotirati sobu, tako da je omogucena simulacija kretanja koordinatnog pocetka kroz prostoriju. Treba voditi racuna da se prilikom kretanja ne dodje u situaciju da koordinatni pocetak udje u unutrasnjost nekog objekta, jer je moguce da ce u tom slucaju deo rezultata simulacije biti netacan. Takodje ne treba u sobu dodavati objekte cije ivice obuhvataju koordinatni pocetak. Sam program ne vodi racuna o tome da li se koordinatni pocetak greskom nasao unutar nekog objekta.
Rezultati simulacije su dati u Dekartovom koordinatnom pocetku. Lako je prebaciti podatke u polarni koordinatni sistem jer redni broj tacke u datoteci odredjuje ugao, a (x^2+y^2)^(1/2) rastojanje od koordinatnog pocetka. Prva dva broja u datoteci predstavljaju broj tacaka za koje je racunat odziv (za rezoluciju 180 odziv se racuna u 179 tacaka) i rezoluciju ugla datu u stepenima (za rezoluciju 180, rezolucija po uglu je 1 stepen). Ostali brojevi su kooridnate presecnih tacaka (prvo x pa y). Podaci su smesteni u datoteku tacke.dat u obliku floating point i razdvajani su po jednim praznim mestom. Moguce je u sledecoj simulaciji dodati podatke na kraj datoteke bez brisanja starih podataka.
Podaci o objektima se mogu smestiti u datoteku soba.dat. Format ove datoteke je sledeci: za svaki objekat se u datoteku upisuje prvo broj temena objekta, a zatim koordinate temena. Jos uvek nije omoguceno u programu ucitavanje podataka iz ove datoteke, ali ce biti za koji dan.
Objekti koji se dodaju u "sobu" su mnogouglovi ili duzi! Duz bi predstavljala npr. beskonacno tanak zid. Zidove u cetvorougaonoj prostoriji treba simulirati kao 4 duzi a ne kao jedan cetvorougao, jer (kao sto sam to ranije naglasio) je moguce da se dobiju netacni rezultati kada se koordinatni pocetak nalazi unutar nekog mnogougla.
Uz izvrsnu verziju programa prilozen je i dll fajl koji mi stalno trazi kad god pokusam da izvrsim program kompajliran u BC++ na nekoj masini koja nema BC++. Ovaj fajl inace pripada Borlandovom kompajleru, pa ako nemate instaliran Borland, iskopirajte ovaj fajl u direktorijum u kome vam se nalazi izvrsni program. U istom direktorijumu ce biti smestene i izlazne datoteke po izvrsenju programa.
To bi u sustini bilo to (za sada). Ako neko primeti neke bagove, neka mi prijavi.
Naknadno cu odraditi jos i sledece:
-omoguciti ucitavanje sobe iz datoteke soba.dat
-omoguciti zapis u datoteku u polarnom koordinatnom sistemu
-omoguciti izbor granica ugla pod kojim se vrsi skeniranje (ugla posmatranja koji je trenutno postavljen na od 0-180 stepeni).
Ako vam jos nesto padne na pamet, javite.
Pedja