-
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
- Xiaomi [Chiny - przyp. JMJ] produkuje w całkowitych ciemnościach i bez ludzi
- Prezydent SZAP/USONA Trump ułaskawił prezydenta Hondurasu Hernandeza skazanego na 45 lat więzienia
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
Najnowsze wątki
- 2026-01-23 KSEFowy trolling
- 2026-01-23 KSEFowy trolling
- 2026-01-23 Warszawa => Software Development Team Leader (C#/.Net) <=
- 2026-01-23 Toruń => Sales Engineer (Database background) <=
- 2026-01-23 Toruń => Preseles Inżynier (background baz danych) <=
- 2026-01-23 antena gsm - kabel - antena gsm
- 2026-01-22 Złomnik ty pisowska SZMATO! ;-)
- 2026-01-22 PID - jeszcze raz
- 2026-01-22 konkret24.tvn24.pl "gwarantuje": za SAMO wylanie gnojówki pod domem tusk-ministra aresztu nie będzie! ;-)
- 2026-01-22 Prawo na wesoło: nakaz rozbiórki "dwóch przyczep samochodowych" jako budynku ;-)
- 2026-01-22 Airtagi
- 2026-01-22 Warszawa => Full Stack Developer (Go/React) <=
- 2026-01-22 Warszawa => Senior Account Manager <=
- 2026-01-21 Nissan Leaf II 40kWh - degradacja baterii, SOH, uszkodzona bateria
- 2026-01-21 Fwd: zarzuty dla kulsonów




Fakturzystka, fakturzysta