OpenGL利用键盘控制模型旋转

之前用OpenGL完成了STL模型的读入和显示,并且使用了旋转函数,将模型进行旋转显示。之后考虑通过键盘对模型进行旋转控制,能够更好的显示模型的整个细节。
首先定义键盘控制函数:

void SpecialKeys(int key, int x, int y) {
    if (key == GLUT_KEY_UP) {
        xRot_triangle += 5.0f;//通过调整等号右边的数字的大小,控制每点一次                      按键,模型旋转的角度。
    }
    if (key == GLUT_KEY_DOWN) {
        xRot_triangle -= 5.0f;
    }
    if (key == GLUT_KEY_LEFT) {
        yRot_triangle += 5.0f;
    }
    if (key==GLUT_KEY_RIGHT) {
        yRot_triangle -= 5.0f;
    }
    if (xRot_triangle > 356.0f|| xRot_line > 356.0f) {
        xRot_triangle = 0.0f;
    }
    if (xRot_triangle < -1.0f|| xRot_line<-1.0f) {
        xRot_triangle = 355.0f;
    }
    if (yRot_triangle> 356.0f ||yRot_line > 356.0f) {
        yRot_triangle = 0.0f;
    }
    if (yRot_triangle < -1.0f||yRot_line<-1.0f) {
        yRot_triangle = 355.0f;
    }
    glutPostRedisplay();
}

然后在内容显示函数内部,将旋转控制所需的矩阵函数写入。

void display(){
......
    glRotatef(xRot_triangle, 1.0f, 0.0f, 0.0f);
    glRotatef(yRot_triangle, 0.0f, 1.0f, 0.0f);
......
}

然后在OpenGL的server处(比如主函数),发出键盘控制的指示。

glutSpecialFunc(SpecialKeys);

这样就可以通过键盘控制模型的旋转了。
参考书籍:
一周学通OpenGL(话说自己最不喜欢这种书,讲的很浅,但是很适合快速上手做一些小程序)

你可能感兴趣的:(opengl学习入门)