Для школьного задания мне сказали сделать модель солнечной системы, используя OpenGL, C ++ и структуру, разработанную школой. Прямо сейчас у меня есть Солнце, Земля и Луна, вращающиеся правильно по сравнению друг с другом в плоской плоскости (ось X). Так как расстояние между Солнцем и Землей слегка эллиптическое, я использую средние расстояния между всеми объектами, которые уменьшены до глобального коэффициента. Однако я хотел бы обновить мою модель, чтобы использовать правильные эллиптические орбиты.
Я нашел некоторые данные, используемые космологами, однако в них используется совершенно другая система координат по сравнению с той, к которой я привык (поэтому без каких-либо заранее написанных инструментов для их преобразования и потенциального изменения центра вращения (большинство из них используют Земля, в то время как я хотел бы использовать Солнце) — это что-то, что немного выходит за рамки моих возможностей в отношении физики и математики. Это также не требование в отношении задания. Кто-нибудь знает, есть ли более простой способ сделать это? ? Или мне просто придерживаться грубых плоских моделей солнечной системы?
NB: Я не возражаю, если используемая мной утилита или библиотека должна преобразовывать орбиты как отдельный процесс, прежде чем вводить их в мой связанный с OpenGL код.
Если вы знакомы с уравнениями для эллипсов, вы можете просто расположить орбиты на афелии (самое дальнее расстояние от солнца) и перигелии (ближайшее расстояние от солнца), которые вы сможете найти в Интернете. Солнце должно располагаться в одном из очагов эллипса.
Если вы хотите, чтобы моделирование было более точным, вы могли бы принять во внимание второй закон Кеплера, который гласит: «Линия, соединяющая планету и Солнце, выметает равные области в течение равных промежутков времени».
Других решений пока нет …