проблема с моей солнечной системой - PullRequest
4 голосов
/ 28 мая 2011

Итак, это моя проблема. Я должен создать Солнечную систему с Солнцем в центре и вращающимися вокруг планетами; у каждой планеты должны быть свои луны.

Итак, я сделал все это, но я не могу заставить Землю вращаться вокруг себя ... Земля вращается вокруг Солнца, Луна вращается вокруг Земли ... Как я могу позволить Земле вращаться вокруг себя? ? Когда я помещаю в код другую «сверкающую» команду, Луна падает на Землю или случается что-то странное ...

Вот мой код ...

// EARTH
// INFO: 1) it's 3rd planet from the Sun;
//       2) it's 5th largest planet in the Solar System, with an equatorial radius of 6378.388km;
//       3) it's 3rd fastest planet, because its orbital period is of 365 earth-days (1 year).
void Earth(void)
{
    DrawOrbit(5.5, 1);
    glRotatef((GLfloat) year*6.2, 0.0, 1.0, 0.0); //orbital movement for the Earth around the Sun
    glTranslatef(5.5, 0.0, 0.0);
    glColor3f(0.0, 0.3, 1.0);
    glutSolidSphere(0.28, 20, 10); //draw Earth: more or less, the Earth has got the same dimension of Venus.

    // The Earth has got one natural satellites: the Moon. Let's draw it:
    glPushMatrix();
    glRotatef((GLfloat) day*2, 0.0, 1.0, 0.0); //rotate for the moon
    glTranslatef(0.5, 0.0, 0.0);
    glColor3f(1.0f, 1.0f, 1.0f);
    glutSolidSphere(0.05, 5, 4); //draw moon: its diameter is about a quarter the diameter of Earth 
    glPopMatrix();

}

Ответы [ 3 ]

5 голосов
/ 28 мая 2011

Измени землю на это

glPushMatrix();
glRotatef(earth_rotation);
glutSolidSphere(0.28, 20, 10); //draw Earth: more or less, the Earth has got the same dimension of Venus.
glPopMatrix();

Несколько астрономических заметок: Земля на самом деле немного больше Венеры. Также пока все ваши орбиты копланарны. Далее ось вращения Земли наклонена примерно на 23 ° относительно плоскости орбиты (называемой эклиптикой). Орбита Луны снова наклонена примерно на 5 ° к эклиптике. И, конечно, планеты вращаются не вокруг Солнца в совершенном круговом обороте, а по эллиптической кривой.

1 голос
/ 28 мая 2011

Вращение Луны вокруг Земли не зависит от вращения Земли вокруг своей оси (по крайней мере, для целей рендеринга)

Таким образом, вы должны нажимать матрицу, вращать Землю и выталкивать и использовать лунную логику. Также, если вы просто рисуете Землю как сплошную сферу, даже если она вращается вокруг себя, она не будет отображаться в вашем приложении, если у вас нет красивой текстуры

0 голосов
/ 29 мая 2011

Если вы хотите сделать это точно, то, что вы делаете, значит быть грубым, неправильным.

Планеты не совсем вращаются вокруг Солнца.Они вращаются вокруг барицентра Солнечной системы, который расположен за пределами поверхности Солнца.Масса Луны составляет около 0,0123 массы Земли, и это означает, что вам лучше смоделировать Землю и Луну как вращающиеся вокруг их общего центра масс, а не как Луну, вращающуюся вокруг Земли.

То же самое относится и кПлутон и Харон, но эй, Плутон больше не планета, так кого это волнует?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...