У меня есть один 3D-объект A и B в одном игровом движке. Объект А — это планета, имеющая бесконечную массу и не движущаяся. У меня есть константа радиуса, которая определяет фиксированную сферу орбиты (сферу, где я хочу, чтобы объект был на краю). А объект B подвержен случайным силам от столкновений с другими объектами, поэтому на него уже действуют силы. Как заставить объект B иметь такое же расстояние от объекта B (держать в радиусе в сфере) только с помощью сил? Я знаю, что есть некоторые сложные вычисления по уравнениям Якоби, но я пытаюсь этого избежать. В настоящее время я делаю:
гравитационный_вектор = координата центра планеты - положение объекта
Distance_number = size (gravity_vector) --> просто расстояние между двумя объектами
ЕСЛИ число_расстояния>радиус, ТО гравитационный_вектор = - гравитационный_вектор --> инвертировать силы, если объект проходит орбиту сферы в ядро планеты
сила = вектор_гравитации
Если я просто сделаю это, объект пойдет в направлении сферы орбиты, как и предполагалось, но он просто слишком сильно подпрыгивает... Есть еще один простой способ сделать это или, может быть, поправка на силу, если расстояние меньше?