#include <iostream>
#include <GL/glut.h>
// 显示回调函数
void display() {
// 清除颜色缓冲区
glClear(GL_COLOR_BUFFER_BIT);
// 开始绘制三角形
glBegin(GL_TRIANGLES);
// 设置顶点颜色和位置
glColor3f(1.0f, 0.0f, 0.0f); // 红色
glVertex2f(0.0f, 0.5f); // 上顶点
glColor3f(0.0f, 1.0f, 0.0f); // 绿色
glVertex2f(-0.5f, -0.5f); // 左下顶点
glColor3f(0.0f, 0.0f, 1.0f); // 蓝色
glVertex2f(0.5f, -0.5f); // 右下顶点
glEnd();
// 刷新缓冲区,确保绘制命令被执行
glFlush();
}
// 初始化函数
void init() {
// 设置清屏颜色为黑色
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
// 设置投影矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// 设置正交投影
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
// 切换回模型视图矩阵
glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char** argv) {
// 初始化 GLUT
glutInit(&argc, argv);
// 设置显示模式:单缓冲和RGB颜色
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
// 设置窗口位置和大小
glutInitWindowPosition(100, 100);
glutInitWindowSize(500, 500);
// 创建窗口
glutCreateWindow("OpenGL Triangle Example");
// 初始化OpenGL设置
init();
// 注册显示回调函数
glutDisplayFunc(display);
// 进入GLUT事件处理循环
glutMainLoop();
return 0;
}
g++ -o main main.cpp -lGL -lGLU -lglut