Гравитационный прогноз для нескольких движущихся аттракторов - PullRequest
0 голосов
/ 05 апреля 2019

Я хочу нарисовать предсказанную линию объекта, который движется по пути под влиянием силы тяжести нескольких движущихся аттракторов.

В каждом кадре я вычисляю прогнозную линию, предварительно вычисляя скорость во времени.

На каждом шаге я вызываю метод GetGravity с фактическим iterationPosition.

Это работает постепенно и очень точно. Я пытаюсь заставить это работать для движущихся аттракторов. Это означает, что мне нужна позиция аттрактора в определенный момент.

Проблема в том, что я не знаю этот момент.

Какой-то псевдокод, что происходит:

Predict() {
    iterations = 1500;
    predictionPoints.Clear();
    while(i < maxIterations) {
        iterationVelocity = Gravity.getGravity(iterationPosition, rigidbody);
        toPosition = iterationPosition + iterationVelocity;
        predictionPoints.Add(toPosition)
    }
    DrawLine(predictionPoints);
}

Каждый движущийся объект также может быть аттрактором, и если объект движется, я хочу, чтобы он нарисовал линию предсказания.

Движущийся объект знает только предсказанные точки во время цикла while.

Но если я попытаюсь получить к нему доступ, он будет пуст.

Некоторая отладка показывает, что код выполняется для каждого кадра следующим образом:

Attractor1.Predict();
Attractor2.Predict();
Attractor3.Predict();

Если я хочу получить доступ к точкам [356] из Аттрактора 3, когда я вычисляю траекторию Аттрактора 1, точки из Аттрактора 3 еще не существуют.

У вас есть идеи, как я могу решить проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...