16:54

Я не сплю, я перешел в режим замедленного функционирования
Будучи чайником в астрономии (хотя когда-то очень сильно интересовался ею), пытаюсь написать программу рисования орбиты. Пока получается какой-то мусор:
s017.radikal.ru/i441/1307/82/203fbe507fdd.png
s003.radikal.ru/i202/1307/2d/75f733daf3d5.png

Большой чОрный шар - гравитационная доминанта, маленький - нечто, что вращается вокруг, зеленая палка - вектор скорости, вертикальные палки из обоих шаров - направление их поворота.

@темы: Программирование

Комментарии
15.07.2013 в 07:40

По какой формуле рисуешь-то? Используй истинные принципы и формулы с нормальным числом итераций.

Тоже попробовать что ли в маткаде порисовать...
15.07.2013 в 09:56

Я не сплю, я перешел в режим замедленного функционирования
Вот найти формулу, по которой это строить, оказалось весьма сложно :). Большую полуось смог вычислить. Но чтобы вычислить малую полуось, нужно знать эксцентриситет. А чтобы вычислить эксцентриситет, надо знать малую полуось. Идеальный вариант получился, когда я просто замерил апоцентр и перицентр, и по ним вычислил эксцентриситет. Сперва я вычислял по этим формулам:




Затем по этой формуле вычислял эксцентриситет, и по ней же строил орбиту:

0_о оу. Похоже, понял, что не получалось - я брал относительную координату относительно фокуса (т.е. тела, вокруг которого происходит вращение), а не от центра орбиты.

Сейчас несколько поменял принцип, рисуется немного лучше.
Сейчас беру систему из трех уравнений:



И выводу e... Вот только там получается квадратное уравнение с двумя корнями, и надо меняться между ними в зависимости от того, что ближе - апоцентр или перицентр. Но в момент этого перехода траектория жутко прыгает:




15.07.2013 в 18:49

Что за извращение? Зачем тебе вычислять готовую орбиту по известным формулам? Почему не численно? Тупо брать силу гравитации и делать приращение.
15.07.2013 в 21:19

Я не сплю, я перешел в режим замедленного функционирования
Я думаю, так это будет заметно ударять по быстродействию.. Кстати, с этим есть еще такая проблема - допустим, спутник находится в точке (x,y) и имеет некий вектор скорости.
В этот момент к нему применяется гравитационная сила, направленная из его текущей точки (x,y) к планете. В следующий момент времени спутник оказывается в точке x2,y2.
Но получается, что направление гравитационной силы "запаздывает" на половину момента времени, в результате орбита будет хоть и медленно, но стабильно увеличиваться.
15.07.2013 в 23:42

Вполне возможно. Вот и будет повод проверить численные методы.