OpenGL显示一个进度条从0到100
时间: 2024-05-14 16:12:55 浏览: 140
以下是一个简单的OpenGL程序,它显示一个进度条从0到100:
```
#include <GL/glut.h>
int progress = 0;
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_QUADS);
glColor3f(1.0, 0.0, 0.0); // 设置颜色为红色
glVertex2f(0.0, 0.0); // 左下角
glVertex2f(progress / 100.0, 0.0); // 右下角
glVertex2f(progress / 100.0, 1.0); // 右上角
glVertex2f(0.0, 1.0); // 左上角
glEnd();
glFlush();
}
void timer(int value) {
progress++;
if (progress > 100) {
progress = 0;
}
glutPostRedisplay();
glutTimerFunc(100, timer, 0);
}
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGL Progress Bar");
glutDisplayFunc(display);
glutTimerFunc(100, timer, 0);
glClearColor(1.0, 1.0, 1.0, 1.0); // 设置背景颜色为白色
glutMainLoop();
return 0;
}
```
这个程序使用OpenGL的基本绘图函数来绘制一个进度条。进度条的颜色为红色,从左到右表示进度从0到100。`timer`函数每100毫秒更新进度值,并调用`glutPostRedisplay`函数来重绘窗口。`glutTimerFunc`函数设置计时器,每100毫秒调用一次`timer`函数。在`main`函数中,我们通过调用`glClearColor`函数来设置窗口的背景颜色为白色。
要编译并运行这个程序,您需要安装OpenGL和GLUT库,并使用以下命令编译:
```
g++ -o progress_bar progress_bar.cpp -lGL -lGLU -lglut
```
然后,您可以运行程序:
```
./progress_bar
```
阅读全文