📅  最后修改于: 2023-12-03 15:00:59.119000             🧑  作者: Mango
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绘图,对了解计算机图形学有很大帮助。