如何暂停glRotatef

时间:2014-05-09 09:51:09

标签: winapi opengl

我的glRotatef()功能有问题,我想在用户按空格键时暂停此功能,我已经搜索了如何存储x功能x,y,z但是我没找到任何功能。 OpenGL glGet()中有一个函数,但它不能获得x,y,z坐标。这就是我迄今所做的:

glPushMatrix();                                     
    if(flag==0)
    {

        glTranslatef(20,5,-10);
        glRotatef(0.8f, 0.8f, 1.0f, 0.5f);
        drawCube();     
    }
    else {
        glTranslatef(20,5,-10);
        drawCube(); 
    }
    glPopMatrix();  

和Space事件:

case VK_SPACE:
                if(flag==0)
                    flag=1;
                else
                    flag=0;
                break;

这项工作在某种程度上,但不是我需要的那种方式。当用户按下Space时,我需要存储多维数据集的位置,当用户再次点击空格以从当前位置继续时,我需要存储该位置。

1 个答案:

答案 0 :(得分:0)

第一件事:旧式openGL?请查看升级

第二次创建一个cubeAngle变量

只有在flag==0

时,您的更新功能中的

才会增加您想要旋转的速度(乘以更新之间的延迟)

然后

glPushMatrix();                                     

    glTranslatef(20,5,-10);
    glRotatef(cubeAngle, 0.8f, 1.0f, 0.5f);
    drawCube();     

glPopMatrix();