绘制三角形

#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

  

posted @ 2025-09-15 16:03  华腾智算  阅读(7)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL