Chcę napisać program do symulacji ruchu dużej liczby (N = 1000 - 10^5 i więcej) ciał (kół) w 2D samolot. Wszystkie ciała mają jednakową wielkość, a jedyną interakcją między nimi jest kolizja elastyczna.2D zderzająca symulacja n-body (szybkie wykrywanie kolizji dla dużej liczby kulek)
Chcę uzyskać coś w rodzaju , ale w większej skali, z większą liczbą kulek i gęstszym wypełnieniem samolotu (nie taki model gazowy jak tutaj, ale coś jak wrzący model wody).
Tak więc chcę szybkiej metody wykrywania, że numer kulki i
ma jakąkolwiek inną piłkę na swojej ścieżce w promieniu 2 * promienia + odległość V * delta_t. Nie chcę przeprowadzać pełnego wyszukiwania kolizji z kulkami N dla każdej z kulki i
. (To wyszukiwanie będzie N^2.)
PS Przepraszamy za animację w formacie GIF. Wystarczy nacisnąć Esc, aby go zatrzymać. (Nie będzie działać w Chrome).
W jakim języku to robisz? –
Czy chcesz, aby był w czasie rzeczywistym? –
java (dokładniej - przetwarzanie Java). ale nie wiem, jaki algorytm powinienem użyć. – osgx