Эллиптические орбиты планет

Сегодня поговорим об эллиптических орбитах и как ставить объекты на эти самые орбиты.

ellips_2

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

Будем задавать эллипс большой полуосью a и эксцентриситетом e. При e=0 получим круг. При e = 1 получим почти линию.

Для более гибкого управления системой, добавим поворот самой орбиты.

Добавим на объект, который будем двигать по орбите, четыре слайдера.

angle — угол поворота
angle_shift — поворот самой орбиты относительно центра композиции
a — большая полуось эллипса
e — эксцентриситет эллипса. [0,1)

Экспрешшн применять к положению. Отцентируйте anchor point. Или не делайте этого, добиваясь необходимого художественного эффекта.

Что происходит в выражении? Сперва мы рассчитываем положение точки в полярной системе координат. Берем большую полуось и эксцентриситет, из них находим длину радиус-вектора, угол поворота у нас уже задан, прибавляем к нему сдвиг. Остается перевести координату в Декартову систему.
Предлагаю всем попробовать и реализовать подобное выражение для трех измерений.
Также, как видно на гифках, у объектов сохраняется угловая скорость, но не линейная. Это можно пофиксить, но предлагаю самим поразмять мозг (школьного курса матанализа может не хватить).

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