-
Data: 2011-12-08 21:27:00
Temat: Re: petla kolizji -> spacjala kolizyjna
Od: " " <f...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]> > jakies uwagi ntt?
>
> nie ca=B3kiem rozumiem Tw=F3j pomys=B3, ale chyba mi si=EA nie podoba.
>
> m=F3j ca=B3kiem nieoptymalny kod analityczny (100 kulek, i czasem nie wy=
> rabia) =
>
> wygl=B1da=B3 jako=B6 tak:
> //szkic w notacji C#
> delegate void Cont();
> Pair<float,Cont>? findCollision(Ball a,Ball b);
> //je=B6li kulki si=EA nie zderzaj=B1, to null,
> //zwraca par=EA -- moment tego zderzenia, i procedur=EA modyfikuj=B1ca s=
> tan =
>
> bior=B1cych udzia=B3 w zderzeniu kulek, je=B6li to zderzenie zajdzie
> //je=B6li mamy kulki a,b i c, to findCollision wo=B3amy dla (a,b), (a,c)=
> i =
>
> (b,c), mo=BFemy dosta=E6 od 0 do 3 procedur, ale wykonujemy najwy=BFej j=
> edn=B1 -- =
>
> dla pierwszego zderzenia,
> //albowiem potem kulki lec=B1 inna trasa, i pozosta=B3e zderzenia s=B1 n=
> iewa=BFne =
>
> (bo zak=B3adaj=B1, =BFe kulki lec=B1 po niezmodyfikowanej trasie)
> Pair<float,Cont>? zapCol=3Dnull;//najblizsza kolizja do wykonania,
>
> w funkcji Update robilem cos takiego
>
> T=3Dnow();
> while(zapCol=3D=3Dnull || zapCol.t<=3DT){
> if(zapCol!=3Dnull){
> zapCol.proc();
> }
> zapCol=3Dnull;//
> Pair<float,Cont>? f=3Dnull;//w=B3a=B6nie znaleziona kolizja
> for(int i=3D0;i<balls.length;i++){
> f=3Dnull;
> b=3Dballs[i];
> //tu byly testy kolizji ze scianami, pomijam dla czytelnosci
> for(int j=3D0;j<i;j++){
> a=3Dballs[j];
> f=3DfindCollision(a,b);
> if(zapCol=3D=3Dnull || (f!=3Dnull && f.t<zapCol.t)){//
je=B6li znalezi=
> ona =
>
> kolizja jest bli=BFsza w czasie ni=BF zapami=EAtana
> zapCol=3Df;//to b=EAdzie u=BFyta
> }
> }
> }
> }
>
> ale to robi O(n^2) dla ka=BFdej kolizji, mo=BFna by znalezione kolizje (=
> f) =
>
> zapami=EAtywa=E6 gdzie=B6, i invalidowa=E6 tylko te, w kt=F3rych uczestn=
> iczy=B3y kulki =
>
> dla wykonywanej (proc()) kolizji.
>
> kod iteracyjny te=BF si=EA si=EA da optymalizowa=E6, i kto=B6 si=EA tym =
> pewnie =
>
> zajmowa=B3, ale ja wola=B3em si=EA pobawi=E6 analitycznym
>
moim zdaniem to co powyzej jest bardzo dziwne
bo nie trzeba sie tak wcale babrac z czasami itp
ja poki co uzywam tutaj
http://dl.dropbox.com/u/42887985/kulki2d.zip
tylko trywialnej 'kwadratowej' detekcji kolizji
(i to grubo bo kulek jest 200 ramek okolo 100/s
i fizyka jest 5x na ramke - czyli to leci 100tys
detekcji kolizji na sekunde)
klawisze: 't' wlacza tlumienie, spacja przelacza
grawitacje, 'z' wlacza pokazywanie wektorow predkosci
(ale nie jest to dokonczony programik (bo zrobilbym
wystrzeliwanie kulek mysza itd) tylko fragment do testu)
kolizji zreszta nie chce mi sie poprawiac (200 kulek starczy)
wolalbym dopracowac ta fizyke (bo jestem jej jakos niepewny/
niezadowolony) przed zaciemnieniem wszystkiego
optymalizacja kolizji
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=