Кто-нибудь знает учебник, который будет касаться гравитационного притяжения двух объектов? Например. спутник притягивается к луне (и, возможно, мимо него пролетает петля).
У меня есть небольшая Java-игра, над которой я работаю, и я хотел бы реализовать в ней его функцию.
У меня есть формула гравитационного притяжения между двумя телами, но когда я пытаюсь использовать ее в своей игре, ничего не происходит?
На экране есть два объекта, один из которых всегда будет неподвижным, а другой движется по прямой линии с постоянной скоростью, пока не попадет в зону обнаружения неподвижного объекта. В какой момент он должен быть обращен к стационарному объекту.
Сначала я вычисляю расстояние между двумя объектами и в зависимости от их массы и этого расстояния обновляю координаты x и y.
Но, как я уже сказал, ничего не происходит. Я неправильно реализую формулу?
Я включил код, чтобы показать, что у меня есть.
Это тот случай, когда частица сталкивается с дальностью обнаружения ворот и должна начать тянуться к ней
for (int i = 0; i < particle.length; i++)
{
// **************************************************************************************************
// GATE COLLISION
// **************************************************************************************************
// Getting the instance when a Particle collides with a Gate
if (getDistanceBetweenObjects(gate.getX(), particle[i].getX(), gate.getY(), particle[i].getY()) <=
sumOfRadii(particle[i].getRadius(), barrier.getRadius()))
{
particle[i].calcGravPull(particle[i].getMass(), barrier.getMass(),
getDistanceBetweenObjects(gate.getX(), particle[i].getX(), gate.getY(), particle[i].getY()));
}
И метод в моем классе частиц, чтобы сделать движение
// Calculate the gravitational pull between objects
public void calcGravPull(int mass1, int mass2, double distBetweenObjects)
{
double gravityPull;
gravityPull = GRAV_CONSTANT * ((mass1 * mass2) / (distBetweenObjects * distBetweenObjects));
x += gravityPull;
y += gravityPull;
}