Моделирование N-тела в javascript

Я работаю над симуляцией гравитации n-тел в javascript и pixijs. Но есть одна большая проблема. Когда два объекта вращаются вокруг друг друга, они постоянно приближаются друг к другу. И когда они слишком близко, они начинают очень быстро ускоряться в определенном направлении.

Вы можете просмотреть мой проект здесь: https://github.com/ruttydm/gravity. пример здесь http://infinidum.com/gravity/


person ruttydm    schedule 22.10.2016    source источник
comment
Вам нужно сначала вычислить все силы, а затем, со всеми фиксированными силами для текущего состояния, вы выполняете обновления скорости и положения. Если все сделано правильно, это симплектический Эйлер, и если временной шаг достаточно мал, это будет даже качественно близко к физическому поведению. Ознакомьтесь с симплектическими методами Верле и более высокого порядка.   -  person Lutz Lehmann    schedule 23.10.2016
comment
@LutzL О, спасибо, я попробую.   -  person ruttydm    schedule 24.10.2016
comment
См. этот ответ для реализации метода интеграции Velocity Verlet. Код написан на C++ и тривиально переводится на JS.   -  person Hristo Iliev    schedule 25.10.2016