OpenGL学习笔记(二) 绘制图形

cpp 复制代码
#include <GL/glut.h>

#include <math.h>
const GLfloat Pi = 3.1415926536f;
void myDisplay(void)
{
    GLfloat a = 1 / (2 - 2 * cos(72 * Pi / 180));
    GLfloat bx = a * cos(18 * Pi / 180);
    GLfloat by = a * sin(18 * Pi / 180);
    GLfloat cy = -a * cos(18 * Pi / 180);
    GLfloat
        PointA[2] = { 0, a },
        PointB[2] = { bx, by },
        PointC[2] = { 0.5, cy },
        PointD[2] = { -0.5, cy },
        PointE[2] = { -bx, by };

    glClear(GL_COLOR_BUFFER_BIT);
    // 按照A->C->E->B->D->A的顺序,可以一笔将五角星画出
    glBegin(GL_LINE_LOOP);
    glVertex2fv(PointA);
    glVertex2fv(PointC);
    glVertex2fv(PointE);
    glVertex2fv(PointB);
    glVertex2fv(PointD);
    glEnd();
    glFlush();
}

int main(int argc, char* argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(400, 400);
    glutCreateWindow("第一个OpenGL程序");
    glutDisplayFunc(&myDisplay);
    glutMainLoop();

    return 0;
}

(一)glVertex2i(1, 3);

(二)glVertex2f(1.0f, 3.0f);

(三)glVertex3f(1.0f, 3.0f, 0.0f);

(四)glVertex4f(1.0f, 3.0f, 0.0f, 1.0f);

(五)GLfloat VertexArr3[] = {1.0f, 3.0f, 0.0f};

glVertex3fv(VertexArr3);

相关推荐
lwf0061644 小时前
导数学习日记
学习·算法·机器学习
qeen875 小时前
【编程日记】现阶段总结
学习
daanpdf5 小时前
新视野大学英语视听说教程2第四版听力音频原文及答案
笔记
-Marks-7 小时前
【C++编程】STL简介 --- (是什么 | 版本发展历程 | 六大组件 | 重要性缺陷以及如何学习)
开发语言·c++·学习·stl·stl版本
U盘失踪了7 小时前
Playwright Trace 查看器
笔记
Joseph Cooper8 小时前
STM32MP157 Linux驱动学习笔记(四):典型总线与设备模型(SPI/USB)
linux·stm32·学习
2401_827499999 小时前
数据分析学习05(黑马)-Pandas
学习·数据分析·pandas
喝醉酒的小白10 小时前
Elasticsearch 故障分析笔记:Pending Tasks 堆积与 Alias 风暴
笔记·elasticsearch
Cathy Bryant10 小时前
微分几何:曲面与坐标系
笔记·矩阵·高等数学·物理学·微分几何
jiayong2310 小时前
第 38 课:任务列表里高亮当前正在查看详情的任务
开发语言·前端·javascript·vue.js·学习