Такая система с несколькими телами будет хаотичной. Я не думаю, что вы сможете решить уравнение для него в режиме реального времени. Лучшее, на что вы можете надеяться, - это найти решение с использованием генетического алгоритма;
1: получить число (например, 100) случайных решений (угол, пары сил).
2: смоделируйте эти решения.
3: если что-то из этого, в конечном итоге попадет в цель (или приблизится достаточно близко), Готово! в противном случае продолжайте.
4: выберите 10 лучших решений (те, которые окажутся ближе всего к цели)
5: из этих 10 решений создайте 10 детей для каждого, случайным образом регулируя их угол и мощность.
6: теперь у вас есть 100 новых решений, вернулись к шагу 2
Вам нужно будет ограничить количество итераций, если решение не найдено или поиск занимает слишком много времени.
Даже такой подход не гарантирует, что найдется хорошее решение, потому что; 1. решение может не существовать 2. в хаотической системе небольшие изменения в решении могут оказать огромное влияние на результат
Angle
», когда у вас есть несколько гравитационных тел, рассеянных по вашей вселенной? Их тяга зависит от вашей текущей позиции. Некоторые снимки могут быть невозможны.Как насчет того, чтобы сделать это реалистичным, не подсчитав их, а начав с догадок и корректировок?
Когда я играл в Gravity Wars, это то, что я делал; начните с полуслучайной мощности и отрегулируйте соответственно с шагом. В течение нескольких кадров вы очень близко.
источник