📜  gl 画线矩形 - C++ (1)

📅  最后修改于: 2023-12-03 15:00:59.119000             🧑  作者: Mango

使用OpenGL绘制线矩形(Rectangle)- C++

OpenGL 是一套用于生成三维计算机图形的绘图 API,同时也可以生成二维的图形。在OpenGL中,我们可以使用一些函数和指令来绘制图形。在本篇文章中,我们将探讨如何使用OpenGL绘制线矩形,同时提供完整的C++示例代码。

程序结构
#include <GL/glut.h>

void myDisplay();
void myReshape(int w, int h);
void drawLineRectangle();

int main(int argc, char *argv[]) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(200, 100);
    glutCreateWindow("OpenGL 画线矩形");
    glutDisplayFunc(&myDisplay);
    glutReshapeFunc(&myReshape);
    glutMainLoop();
    return 0;
}

void myDisplay() {
    glClear(GL_COLOR_BUFFER_BIT);
    drawLineRectangle();
    glFlush();
}

void myReshape(int w, int h) {
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluOrtho2D(0.0, w, 0.0, h);
}

void drawLineRectangle() {
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_LINE_LOOP);   // 绘制线矩形
        glVertex2i(50, 50);
        glVertex2i(250, 50);
        glVertex2i(250, 250);
        glVertex2i(50, 250);
    glEnd();
}

这份代码定义了一个窗口,并且添加一些回调函数。其中,myReshape()函数将窗口大小设置为400×400,并且设置为二维投影视角。在myDisplay()函数中,我们清空屏幕并调用drawLineRectangle()函数绘制线矩形。最后,我们调用glFlush()函数将图形绘制出来。

drawLineRectangle()函数使用glBegin()glEnd()将绘图命令置于这两个函数之间。在glBegin()glEnd()之间,我们可以绘制一些几何图形,如点、线和面。在这个例子中,我们使用glBegin(GL_LINE_LOOP)来绘制一个矩形。指令glColor3f()可以设置颜色,这个例子中我们设置了红色。

运行结果

运行结果

总结

本文介绍了如何使用OpenGL绘制线矩形,同时提供了完整的代码示例。学习如何使用OpenGL绘图,对了解计算机图形学有很大帮助。