Как перемещать обтягивающее тело по траектории эллиптической орбиты и менять траекторию - PullRequest
0 голосов
/ 09 декабря 2018

Я искал ответ и пока не нашел.У меня есть эллиптическая траектория орбиты, и я хочу переместить орбитальное тело по траектории в трехмерном пространстве.Текущие попытки не сработали правильно.(объект замедляется при периапсисе и ускоряется при апоапсисе или просто разрывается со значениями NaN)

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

1 Ответ

0 голосов
/ 09 декабря 2018

Дополнительная информация будет полезна.Но я рекомендую использовать единство, встроенное в компонент твердого тела.Вам нужно получить центр массы тела, вокруг которого вы вращаетесь, и его массу, чем рассчитать силу G для расстояния между центром масс тела, которым вы вращаетесь, и вашим центром масс, подробнее об этом здесь https://www.physicsclassroom.com/class/circles/Lesson-3/Newton-s-Law-of-Universal-Gravitation, чем взять этот вектор и умножить его на ваше направление.Эта функция поможет вам сделать это https://docs.unity3d.com/ScriptReference/Quaternion.LookRotation.html После того, как вы умножили свое направление на силу, используйте RigidBody.AddForce() и отправьте вектор.Я предлагаю использовать Physics.OverlapSphere() for эту задачу, см. https://docs.unity3d.com/ScriptReference/Physics.OverlapSphere.html и наложить всю эту логику на тело, на котором вы вращаетесь.Все, что вам нужно сделать - это заставить тело, на котором вы хотите вращаться, находиться в нужном месте с правильной скоростью, и вы получите свои результаты.Просто убедитесь, что вы выключили гравитацию и правильно настроили массу

...