OpenGL图形库编写一个小程序,实现对图形的基本操作代码
时间: 2024-03-23 12:41:49 浏览: 170
好的,下面是一个简单的OpenGL程序,它实现了以下基本操作:
1. 清空窗口颜色
2. 绘制一个三角形
3. 响应窗口大小变化事件,自适应调整视口大小
4. 等待用户关闭窗口并退出程序
```c++
#include <GL/glut.h>
// 三角形的顶点坐标
GLfloat vertices[] = {
-0.5f, -0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
0.0f, 0.5f, 0.0f
};
void display() {
// 清空窗口颜色
glClear(GL_COLOR_BUFFER_BIT);
// 绘制三角形
glBegin(GL_TRIANGLES);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3fv(vertices);
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3fv(vertices + 3);
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3fv(vertices + 6);
glEnd();
// 刷新缓冲区
glutSwapBuffers();
}
void reshape(int width, int height) {
// 设置视口大小
glViewport(0, 0, width, height);
}
int main(int argc, char** argv) {
// 初始化 GLUT
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
// 创建窗口
glutInitWindowSize(640, 480);
glutCreateWindow("OpenGL Demo");
// 注册回调函数
glutDisplayFunc(display);
glutReshapeFunc(reshape);
// 进入主循环
glutMainLoop();
return 0;
}
```
编译链接时需要添加 OpenGL 和 GLUT 库,例如:
```
g++ demo.cpp -lGL -lGLU -lglut
```
运行程序后,应该会出现一个带有绘制的三角形的窗口,可以拖动窗口大小,观察视口大小的变化。关闭窗口后程序会退出。
阅读全文