gpt4 book ai didi

c++ - OpenGL,如何旋转彼此独立的对象?

转载 作者:行者123 更新时间:2023-11-30 02:42:36 25 4
gpt4 key购买 nike

到目前为止我的代码

void display ( void )
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Clear Screen And Depth Buffer
glLoadIdentity();
gluLookAt( camera[0][0], camera[0][1], camera[0][2],
camera[1][0], camera[1][1], camera[1][2],
camera[2][0], camera[2][1], camera[2][2] ); //Set the point looking at


glRotatef(cubeRot[0], 1.0f, 0.0f, 0.0f); //rotate on x axis
glRotatef(cubeRot[1], 0.0f, 1.0f, 0.0f); //rotate on y axis
glRotatef(cubeRot[2], 0.0f, 0.0f, 1.0f); //rotate on z axis

switch ( Rendermode ) { //different render mode

case 'f':
//Draw object I want to rotate
break;

case 'v':
//Draw object I want to rotate
break;

case 'e':
//Draw object I want to rotate
break;

glLoadIdentity();

}

//Draw object I DO NOT want to rotate

glutSwapBuffers ( ); // Swap The Buffers To Not Be Left With A Clear Screen
}

但是目前我所有的对象同时旋转,我怎么能旋转我注意到想要旋转的对象而让我注意到不想旋转的对象静止不动?

最佳答案

用 glPush/PopMatrix() 封装线性变换并绘制对象。这些函数保存/恢复矩阵的当前状态,因此它们不会影响其他绘图。

glPushMatrix();
glRotatef(...);
// glTranslatef(...),
//glScalef(...);
drawObject1();
glPopMatrix();

glPushMatrix();
glRotatef(...);
// glTranslatef(...),
//glScalef(...);
drawObject2();
glPopMatrix();

关于c++ - OpenGL,如何旋转彼此独立的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946327/

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