-
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
- 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??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-20 Gdańsk => Programista Full Stack .Net <=
- 2025-01-20 Gliwice => Business Development Manager - Dział Sieci i Bezpieczeńst
- 2025-01-20 Warszawa => Full Stack .Net Engineer <=
- 2025-01-20 huta ruszyla
- 2025-01-20 piece wodorowe
- 2025-01-20 Lublin => Programista Delphi <=
- 2025-01-20 Warszawa => Architekt rozwiązań (doświadczenie w obszarze Java, AWS
- 2025-01-20 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-20 Bieruń => Spedytor Międzynarodowy (handel ładunkami/prowadzenie flo
- 2025-01-19 Test - nie czytać
- 2025-01-19 qqqq
- 2025-01-19 Tauron przysyła aneks
- 2025-01-19 Nowa ładowarka Moya a Twizy -)
- 2025-01-18 Power BANK z ładowaniem przelotowym robi PRZERWY
- 2025-01-18 Pomoc dla Filipa ;)