Autor Wątek: Collision response - Sfera - Sfera  (Przeczytany 3304 razy)

Offline Charibo

  • Redaktor

# Listopad 06, 2006, 16:23:55
Tak wiec witajcie (pierwszy post :P )

Moj problem polaga na odpowiedzi na kolizje miedzy dwoma sferami w 3D, pakiet DirectX. Forum przeszukalem cale, google tez mi nie pomogly, bo albo w 2D, albo tak skomplikowane, ze szkoda gadac. Chodzi mi o bardzo malo skomplikowana odpowiedz, zeby szybka byla i latwo sie pisalo :) Nie prosze o zaden gotowy kod ani ogolnie gotowce (chociaz kod by sie przydal :) ). Prosze o linki z tutorialami (polskie, angielskie - nie ma znaczenia) i porady.

Pozdrawiam
Charibo

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline SauRooN

  • Użytkownik

# Listopad 06, 2006, 19:33:40
Ekhm... A ile masz lat? Liczysz odległość między środkami sfer. Jeśli ta odległość jest mniejsza niż suma ich promieni, to masz kolizję.

Offline Moriturius

  • Użytkownik

# Listopad 07, 2006, 09:36:58
Odpowiedź na kolizje? Nie wiem czy dobrze zrozumiałem pytanie...
ale czy nie wystarczy zrobić sobie funkcji z odpowiednimi argumentami (np 2 kolidujące obiekty) która będzie decydować o ich dalszych losach?

Offline Charibo

  • Redaktor

# Listopad 07, 2006, 14:40:43
Kolizje juz mam, nie o to chodzi. Mowie wlasnie o tych "ich dalszych losach". Poznajdywalem pelno wiadomosci na ten temat - ale tylko w 2D albo takich ze zupielnie nie wiedzialem jak przeniesc to w kod. Nie mam zadnego juz pomyslu, gdyz mecze sie z tym od dobrego miesiaca i mam dosc :)

At SauRooN: 15, a ty? (Najpierw przeczytaj dokladnie post zanim zaczniesz jechac)

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Listopad 07, 2006, 16:02:17
Trzeba było uważać na fizyce. Poczytaj o czymś takim jak "zasada zachowania pędu" oraz "odbicie sprężyste ciał". Jeśli teksty z netu wydają się być za trudne to proponuję wycieczkę do biblioteki i lekture pierwszego lepszego podrecznika z fizyki.

Tak w skrocie. Każda sfera (załóżmy, że jest to kulka bilardowa) ma swój wektor kierunku, masę oraz prędkość. Wystarczy poszukać w książce od fizyki odpowiednich wzorów i gotowe. Kulki traktujesz jako obiekty (klasy) i liczysz przy kolizji nowe wektory kierunku dla kazdej kulki.

Tu masz bardzo ladnie opisane zagadnienie odbicia dwóch kul. Niestety to kopia z google bo oryginalna strona nie dziala.
http://tnij.com/CVI

PS - sposoby, które znalazłeś odnośnie 2D są identyczne jak w 3D tyle, że do wektorów dochodzi "z"

Offline Charibo

  • Redaktor

# Listopad 07, 2006, 16:30:47
Dziekuje za odpowiedz SirMike. Teraz juz powinno pojsc dobrze :)

Pozdrawiam
Charibo
PS. Link nie dziala ale to nie szkodzi

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Listopad 07, 2006, 16:48:29

Offline Spider100

  • Moderator
    • Strona domowa

# Listopad 07, 2006, 17:02:34
Witam !

Rozwiazanie które podał SirMike jest oczywiście pewnym uroszczeniem gdyż pomija ruch obrotowy który sprawia zazwyczaj sporo problemow (początkującym) ale i efekty są ciekawsze, jak będizesz chcial się tym zając to moge polecić jedynie "fizyke dla programistów gier" w której dość dokładnie opisany jest ruch obrotowy, moment bezwładności i wszystkie inne glupoty z tym związane :).
Do ciekawszych zastosowan polecam metodę impulsową która jest najprostrza dla początkującego 'fizyka':)

ps: Generalnie w odowiedzi kolizji nie ma zaczenia czy obiekt jest kulą czy jakąs inną figurą geometryczną :)

Pozdrawiam!
Spider ^*^

[edit] Metoda impulsowa bez ruchu obrotowego:
http://freespace.virgin.net/hugo.elias/models/m_snokr.htm
« Ostatnia zmiana: Listopad 07, 2006, 17:10:42 wysłana przez Spider100 »

Offline SauRooN

  • Użytkownik

# Listopad 07, 2006, 19:45:52
At SauRooN: 15, a ty? (Najpierw przeczytaj dokladnie post zanim zaczniesz jechac)
Wcale nie pojechałem, zapytałem tylko o Twój wiek :) Rzeczywiście źle przeczytałem Twój post, chyba zmęczony byłem ;)

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Listopad 07, 2006, 21:21:15
Rozwiazanie które podał SirMike jest oczywiście pewnym uroszczeniem gdyż pomija ruch obrotowy który sprawia zazwyczaj sporo problemow (początkującym) ale i efekty są ciekawsze, jak będizesz chcial się tym zając to moge polecić jedynie "fizyke dla programistów gier" w której dość dokładnie opisany jest ruch obrotowy, moment bezwładności i wszystkie inne glupoty z tym związane :).

O obrotach w poscie nie bylo mowy wiec nawet nie wspominalem ;)

Offline Charibo

  • Redaktor

# Listopad 08, 2006, 16:39:42
Dzieki bardzo. Narazie skorzystam z metody impulsowej, wydaje mi sie odpowiednia. Moj blad w polegal na tym, ze caly czas myslalem jak by tu zmienic polozenie kuli, a nie pomyslalem o prostej zmianie wektora predkosci :)

At Sauroon: Zdarza sie


Offline Moriturius

  • Użytkownik

# Listopad 08, 2006, 16:52:31
[oT]
Trzeba było uważać na fizyce.

niestety na fizyce rozpatrywane są tylko zderzenia centralne ;)
[/OT]

BTW. Zdaje mi sie że kiedyś taki Topic na forum już zakładałem :`

Offline SirMike

  • Użytkownik
    • SirMike's Techblog

# Listopad 08, 2006, 18:22:45
niestety na fizyce rozpatrywane są tylko zderzenia centralne ;)

Hehe, czego oni ucza w tych szkolach teraz.
Za moich czasow... ;)

Offline Spider100

  • Moderator
    • Strona domowa

# Listopad 09, 2006, 18:39:17
niestety na fizyce rozpatrywane są tylko zderzenia centralne ;)

Hehe, czego oni ucza w tych szkolach teraz.
Za moich czasow... ;)

Wiadomo ze jak chcesz się czegoś nauczyć to szkoła jest ostatnim miejscem do tego przeznaczonym ... ;)

Offline poler

  • Użytkownik

# Listopad 13, 2007, 15:11:49
A ja mam dodakowe pytanie :  zrobilem sobie jakis tam prymitywny bilard z 2 kulkami zamkniete w kwadracie,  i   pozwolilem sie im odbijac ,  ale co zrobic  jak poruszaja sie za szybko ? np
1 klatka   kulki prawie sie dotykaja 
2 klatka   kulki nachodza na siebie :(     no a gdyby jeszcze bylo ich wiecej :/  ?