在绘制直线时,特别是一系列连续的点时,要特别注意 绘线方式GL_LINES 和GL_LINE_STRIP
- GL_LINES :每一对顶点被解释为一条直线。
- GL_LINE_STRIP: 一系列的连续直线。
当绘制的点只有两个时,如下代码
glBegin( GL_LINES);
glVertex*( V1);
glVertex*( V2);
glEnd();
与如下代码:
glBegin( GL_LINE_STRIP)
glVertex*( V1);
glVertex*( V2);
glEnd();
,GL_LINE与GL_LINE_STRIP绘线方式没有差异,绘制结果都是一条连接点V1与点V2的一条直线。
当绘制的是一系列点的时候,比如点集为:V1, V2, V3, V4, V5, V6; GL_LINES与GL_LINE_STRIP的区别就会很明显。如下代码:
glBegin( GL_LINES);
glVertex*( V1);
glVertex*( V2);
.....
glVertex*( V6);
glEnd();
上述程序的绘制结果是:V1与V2之间, V3与V4之间, V5与V6之间是直线连接的, V2与V3, V4与V5之间没有直线连接;如下为在棋盘格上以GL_LINES绘制的直线,可以看到直线之间有明显的断开:
如下代码:
glBegin( GL_LINE_STRIP);
glVertex*( V1);
glVertex*( V2);
.....
glVertex*( V6);
glEnd();
上述程序的绘制结果是:V1与V2, V2与V3, V3与V4, V4与V5,V5与V6之间都是直线连接的。如下为在棋盘格上以GL_LINE_STRIP绘制的直线, 没有断开。