Орбита объекта вокруг орбитального объекта
Как добраться до орбиты зеленый круга вокруг оранжевого и синих вокруг зеленого?
Я нашел много решений, которые отлично работают с поворотом вокруг статической точки (в этом случае оранжевый круг), но не нашли хорошего уравнения математики, которое будет работать как для статических, так и для движущихся точек.
angle += sunRot;
if(angle > 360.0f)
{
angle = 0.0f;
}
float radian = glm::radians(angle);
float radius = glm::distance(position, rotCenter);
float x = rotCenter.x + (radius * cosf(radian));
float z = rotCenter.z + (radius * sinf(radian));
glm::vec3 newPos = glm::vec3(x, 0, z);
setPosition(newPos);
Here is, что я пытаюсь добиться (благодаря @George Profenza для связи общего доступа)
Все, что вам нужно сделать, это преобразовать каждый из объектов в правильном порядке. Сначала вы будете вращать зеленый объект вокруг оранжевого объекта, чтобы получить его местоположение. Затем вы используете расположение зеленого объекта и вращаете вокруг него синий объект. У них идеальные круговые орбиты, поэтому вы можете перевести их на фиксированное расстояние от центра объекта, на котором они расположены. –
Вам нужно что-то [подобное] (https://www.youtube.com/watch?v=QVuU2YCwHjw&feature=youtu.be&t=1m)? –
@ peter-wood, нет, я просто пытаюсь имитировать Землю, вращающуюся вокруг Солнца и Луны, вращающихся вокруг Земли. – tvoloshyn