绘制三角形
#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