gpt4 book ai didi

c++ - 2个旋转物体opengl

转载 作者:行者123 更新时间:2023-11-30 04:23:29 27 4
gpt4 key购买 nike

我有一个围绕 0,0,0 旋转的旋转物体。我现在想要另一个对象围绕另一个对象旋转。有点像地球绕着太阳转,然后月亮绕着地球转。我不确定该怎么做。

void earth(){
glPushMatrix();
glRotatef(anglee, 1.0f, 0.0f, 0.0f);
glTranslatef(0.0,20,0);
glutSolidSphere(0.8,50,50);
glPopMatrix();

glPushMatrix();
glRotatef(anglee, 0.0f, 0.0f, 0.0f);
glTranslatef(0.0,20.0,8);
glutSolidSphere(0.4,50,50);
glPopMatrix();
anglee+=4.0f;
}

我的第一次轮换是正确的,但我不确定如何进行第二次轮换。

最佳答案

这里有一个提示..在你的显示回调函数中这样做:

void display()
{
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(10,10,10, 0,0,0, 0,1,0);

/* current position is by default the origin */

//draw sun
glutSolidSphere(1,100,100);

//draw planet
glRotated(angle1,0,1,0); //rotates position by angle1
glTranslated(0,0,5); //translates position by sun-planet distance
glutSolidSphere(0.7,100,100); //draw planet at this new position

//draw moon
glRotated(angle2,0,1,0); //rotates position by angle1+angle2
glTranslated(0,0,2); //translates position by planet-moon distance
glutSolidSphere(0.3,100,100); //draw moon at this new position

glutSwapBuffers();

angle1 += 0.2;
angle2 += 0.2;
if(angle1 > 360) angle1 = 0;
if(angle2 > 360) angle2 = 0;
}

尝试对绘制的行星和月球部分的一些线条进行注释,看看它们之间的区别,这将有助于您理解它。

希望这对您有所帮助!

关于c++ - 2个旋转物体opengl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331533/

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