旧版OpenGL使用固定功能管线(Fixed Function Pipeline)来进行渲染,其中包括顶点处理、光栅化和片段处理等阶段。要绘制不同颜色的线条,可以按照以下步骤进行操作:
glMatrixMode
函数将当前矩阵模式设置为投影矩阵模式,然后使用glLoadIdentity
函数将当前矩阵重置为单位矩阵。glOrtho
函数设置正交投影矩阵,以定义绘制区域的大小和位置。glColor3f
函数设置绘制线条的颜色。该函数接受三个参数,分别代表红、绿、蓝三个通道的颜色值,取值范围为0.0到1.0。glBegin(GL_LINES)
函数开始定义线条的绘制,然后使用glVertex2f
函数定义线条的起点和终点坐标。可以多次调用glVertex2f
函数来定义多个线条的起点和终点坐标。最后使用glEnd
函数结束线条的绘制。下面是一个示例代码,用于绘制两条不同颜色的线条:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
// 设置第一条线条的颜色为红色
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2f(-0.5, 0.0);
glVertex2f(0.5, 0.0);
glEnd();
// 设置第二条线条的颜色为绿色
glColor3f(0.0, 1.0, 0.0);
glBegin(GL_LINES);
glVertex2f(0.0, -0.5);
glVertex2f(0.0, 0.5);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(400, 400);
glutCreateWindow("OpenGL Line Example");
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
在这个示例中,首先使用glutInit
函数初始化OpenGL环境,然后设置显示模式、窗口大小和标题等。在display
函数中,首先使用glClear
函数清空颜色缓冲区。然后使用glColor3f
函数设置线条的颜色,分别绘制了一条红色的水平线和一条绿色的垂直线。最后使用glFlush
函数将绘制的结果刷新到屏幕上。
注意:以上代码是使用OpenGL的固定功能管线进行绘制的,如果要使用现代OpenGL(如OpenGL 3.0及以上版本),需要使用着色器程序来进行绘制。
领取专属 10元无门槛券
手把手带您无忧上云