惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
C
Check Point Blog
I
InfoQ
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
月光博客
月光博客
Recent Announcements
Recent Announcements
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
博客园 - Franky
博客园_首页
罗磊的独立博客
量子位
美团技术团队
T
The Blog of Author Tim Ferriss
Last Week in AI
Last Week in AI
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏

博客园 - 华腾智算

逐个注释 前端学习全景图 · HTML5 + CSS3 全部知识点 前端学习全景图 从零实现跨平台 3D 引擎架构方案 2026年的跨平台 GUI 开发趋势 杀毒 现代图形学的本质 C++快速掌握之一 rust控制流-各种循环 rust控制流 rust函数和注释 rust复核类型--元组tuple和数组 rust的类型 rust常量和变量 rust正确的猜数游戏 rust猜数游戏2 rust猜数游戏 字体选型 20260810代码 理解图形学之一入门 Rust 标准库 `std` 中最常用、最核心的模块和类型 Rust 标准库std RUST教程 rust理解一 rust多文件组织 - 华腾智算 Cargo.toml Rust 语言教程 C#常用 C#第六天异常 通俗易懂解释编程-适用于任何编程语言
绘制三角形
华腾智算 · 2025-09-15 · via 博客园 - 华腾智算
#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