gpt4 book ai didi

c - OpenGL - 在没有旋转的情况下绕着太阳旋转月亮?

转载 作者:行者123 更新时间:2023-12-02 00:00:20 24 4
gpt4 key购买 nike

我正在研究月球绕地球旋转的图形模型。现在,月球在绕地球旋转的同时绕其 y 轴旋转。我怎样才能阻止月球旋转但仍允许它绕轨道运行?这是代码..

编辑:添加了动画视频来演示问题:

http://www.youtube.com/watch?v=ltGV4pXD5Cs

void DrawInhabitants(GLint nShadow)
{
static GLfloat yRot = 0.0f; // Rotation angle for animation

if(nShadow == 0)
{
yRot += 0.2f;
}

// Draw the randomly located spheres
glBindTexture(GL_TEXTURE_2D, textureObjects[MOON_TEXTURE]);

glPushMatrix();
glTranslatef(0.0f, 0.1f, -2.5f);

glPushMatrix();
glRotatef(-yRot * 2.0f, 0.0f, 1.0f, 0.0f);
glTranslatef(1.0f, 0.0f, 0.0f);
gltDrawSphere(0.1f,21, 11);
glPopMatrix();

if(nShadow == 0)
{
// Torus alone will be specular
glMaterialfv(GL_FRONT, GL_SPECULAR, fBrightLight);
}

glRotatef(-yRot, 0.0f, 1.0f, 0.0f);
glBindTexture(GL_TEXTURE_2D, textureObjects[EARTH_TEXTURE]);
gltDrawSphere(0.3f, 21, 11);
glMaterialfv(GL_FRONT, GL_SPECULAR, fNoLight);
glPopMatrix();
}

最佳答案

问题在于您正在旋转坐标系,以便将月亮置于其所需的相对位置。这种旋转是全局性的,因此它也会影响月球的方向。翻译后需要撤销旋转,所以就有了“翻译三明治”

rotate a
translate
rotate -a

关于c - OpenGL - 在没有旋转的情况下绕着太阳旋转月亮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21748219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com