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

推荐订阅源

IT之家
IT之家
博客园 - 聂微东
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
S
SegmentFault 最新的问题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
博客园 - 司徒正美
爱范儿
爱范儿
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
博客园_首页
博客园 - 【当耐特】
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
人人都是产品经理
人人都是产品经理
V
V2EX

博客园 - 华腾智算

逐个注释 前端学习全景图 · 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