文章目录
一、设置线宽度
二、绘制单条线段 GL_LINES
三、绘制多条线段 GL_LINES
四、绘制依次连接的点组成的线 GL_LINE_STRIP
五、绘制圈 GL_LINE_LOOP ( 偶数个点 )
六、绘制圈 GL_LINE_LOOP ( 奇数个点 )
七、绘制彩色的线
八、相关资源
一、设置线宽度
线的绘制宽度是 OpenGL 状态机中的一个值 , 通过 glLineWidth 方法设置 ; 下面的代码将线的宽度设置为 2 像素 ;
/
/ 设置线的宽度 glLineWidth(2.0f);
二、绘制单条线段 GL_LINES
绘制线时, 会将从 glBegin 到 glEnd 之间的所有的点都绘制出来 ;
可以调用 glVertex3f 方法设置成对的点 , 每两个点代表一条线 ;
注意必须成对设置 , 如果设置 奇数个点 , 最后一个点会被丢弃 ;
绘制线段时 , glBegin(GL_LINES) 方法传入的参数是 GL_LINES ;
在 glBegin(GL_LINES) 和 glEnd() 之间设置的点 , 会被自动当做线的两个端点 ;
如在上述 glBegin 和 glEnd 两个方法之间调用了
glVertex3f(0.0f, 0.0f, -10.0f); glVertex3f(-5.0f, 0.0f, -10.0f);
代码 , 含义是绘制一条线段 , 端点分别是 (0,0,-10) 和 (-5,0,-10) ;
代码示例 :
// 渲染场景 // 清除缓冲区 , // 使用之前设置的 glClearColor(1.0, 0.0, 0.0, 1.0) 擦除颜色缓冲区 // 红色背景 glClear(GL_COLOR_BUFFER_BIT); // 设置当前的绘制颜色 , 4 个 unsigned byte // 每个颜色的分量占一个字节 // 参数数据是 R 红色 G 绿色 B 蓝色 A 透明度 // 下面设置的含义是白色, 绘制点的时候, 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); // 绘制线时, 会将从 glBegin 到 glEnd 之间的所有的点都绘制出来 // 可以调用 glVertex3f 方法 成对 设置多条线 // 注意必须成对设置 , 如果设置奇数个点 , 最后一个点会被丢弃 // 绘制线段开始 glBegin(GL_LINES); // 绘制线 , 每两个点组成一条线 // glVertex3f (GLfloat x, GLfloat y, GLfloat z) glVertex3f(0.0f, 0.0f, -10.0f); glVertex3f(-5.0f, 0.0f, -10.0f); // 上面的设置会从 (0,0,-10) 坐标向 (-5,0,-10) 坐标绘制一条线 // 绘制点结束 glEnd(); // 将后缓冲区绘制到前台 SwapBuffers(dc);
绘制效果 :
注意 : 设置的点个数必须是偶数的 , 如果设置奇数个点 , 最后一个点会被舍弃 ;