Кто-нибудь знает учебник, посвященный гравитационному притяжению двух объектов? Например. спутник притягивается к Луне (и, возможно, проходит мимо нее).
У меня есть небольшая 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()));
}
И метод в моем классе Particle для движения
// 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;
}