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);

相关推荐
呱呱巨基1 小时前
Linux 基础IO
linux·c++·笔记·学习
萑澈3 小时前
智能增强与范式演进:OpenClaw 与 Hermes Agent 自我学习机制深度研究报告
学习
白夜11174 小时前
C++(标签派发 Tag Dispatching)
开发语言·c++·笔记·算法
xuhaoyu_cpp_java4 小时前
Spring学习(一)
java·经验分享·笔记·学习·spring
ZC跨境爬虫5 小时前
跟着 MDN 学 HTML day_15:(媒体缓冲、拖动与时间范围控制)
前端·笔记·ui·html·edge浏览器·媒体
minglie15 小时前
剩余定理的电枢语言描述
学习
我是发哥哈6 小时前
深度评测:五款主流AI培训平台的课程交付能力对比
大数据·人工智能·学习·机器学习·ai·chatgpt
摇滚侠6 小时前
DSL 学习 ElasticSearch 主要就是学习 DSL 查询语言
学习·elasticsearch·jenkins
AI周红伟7 小时前
三年狂赚1.75亿!卖课,才是中国AI最容易赚钱的生意
人工智能·深度学习·学习·机器学习·copilot·openclaw
永远不会的CC7 小时前
Hello-Agents 初识智能体(实现一个简单旅游推荐智能体)
人工智能·学习·旅游