首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的太阳能系统有问题

我的太阳能系统有问题
EN

Stack Overflow用户
提问于 2011-05-28 21:05:28
回答 3查看 1.7K关注 0票数 4

所以,这就是我的问题。我应该做一个太阳系,太阳在中心,行星围绕着旋转;每个行星都应该有自己的卫星。

所以,我做了所有的事情,但是我不能让地球自转……地球绕太阳转,月球绕地球转……我怎么能让地球自转呢?当我在代码中放入另一个"glrotating“命令时,月球会掉到地球上,或者发生一些奇怪的事情……

下面是我的代码。

代码语言:javascript
运行
复制
// 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();

}
EN

回答 3

Stack Overflow用户

发布于 2011-05-28 21:49:00

将地球更改为此

代码语言:javascript
运行
复制
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°。当然,这些行星并不是以完美的圆周公转,而是以椭圆曲线的方式围绕太阳运行。

票数 4
EN

Stack Overflow用户

发布于 2011-05-28 21:30:43

月球围绕地球的公转与地球围绕自己的轴的公转无关(至少在渲染方面是这样)。

所以你应该推动矩阵旋转地球和流行,并使用你的月亮的逻辑。此外,如果您只是将地球绘制为一个实心球体,即使它围绕着自己旋转,它也不会在您的应用程序中显示出来,除非您在它上面有一个漂亮的纹理

票数 1
EN

Stack Overflow用户

发布于 2011-05-29 05:25:40

如果你想准确地做到这一点,坦率地说,你所做的是错误的。

这些行星并不完全围绕太阳运行。它们围绕太阳系的重心运行,而重心恰好位于太阳表面之外。月球的质量大约是地球的0.0123,这意味着你最好将地球和月球建模为围绕其共同的质心运行,而不是月球围绕地球运行。

冥王星和Charon也是如此,但是,嘿,冥王星不再是一个行星了,所以谁会关心呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6161818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档