OpenGL绘制一个线框茶壶模型。 通过键盘上W、A、S、D键控制茶壶模型向上、向左、向下、向右旋转
时间: 2023-07-10 19:07:20 浏览: 103
以下是一个简单的OpenGL程序,绘制一个线框茶壶模型,并通过键盘控制旋转。需要使用到GLUT库和GLU库。
```c++
#include <GL/glut.h>
#include <GL/glu.h>
float angleX = 0, angleY = 0;
void drawTeapot() {
glutWireTeapot(0.5);
}
void display() {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0, 0, 2, 0, 0, 0, 0, 1, 0);
glRotatef(angleX, 1, 0, 0);
glRotatef(angleY, 0, 1, 0);
drawTeapot();
glutSwapBuffers();
}
void keyboard(unsigned char key, int x, int y) {
switch (key) {
case 'w':
angleX += 5;
break;
case 'a':
angleY -= 5;
break;
case 's':
angleX -= 5;
break;
case 'd':
angleY += 5;
break;
}
glutPostRedisplay();
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(800, 600);
glutCreateWindow("Teapot");
glClearColor(1.0, 1.0, 1.0, 1.0);
glEnable(GL_DEPTH_TEST);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
```
在程序中,我们定义了一个`drawTeapot()`函数,用于绘制茶壶模型。然后在`display()`函数中,先清空屏幕,并设置视角。接着根据键盘输入的角度进行旋转,最后调用`drawTeapot()`函数进行绘制。
在主函数中,我们设置了OpenGL的显示模式,窗口大小和标题,并启用了深度缓冲。然后注册了`display()`和`keyboard()`函数,并进入主循环。
你可以将代码保存为一个.cpp文件,然后使用以下命令编译:
```
g++ -o teapot teapot.cpp -lglut -lGLU -lGL
```
运行程序后,你就可以使用W、A、S、D键来控制茶壶的旋转了。
阅读全文