Opengl 操纵GL_线条中的线

Opengl 操纵GL_线条中的线,opengl,graphics,opengl-es,Opengl,Graphics,Opengl Es,我正在制作一个简单的2d绘图程序,其中我有一个顶点数组(比如a1、a2、a3,…),该数组将使用GL_线_带绘制。问题是,假设有3个连续的顶点:p1、p2、p3,现在我想如果(p2=某个特定的顶点值),那么GL_线_带应该在p1处结束,新的GL_线_带从p3处开始,忽略p2。我想在街上的p2处休息一下。我该怎么做?? PS:我试着在线条条的循环中创建(p2处的线条宽度=0),但发现由于opengl是一个状态机,我们不能在glBegin和GLEnd内部更改宽度。还有其他人吗 以下是一些失败的示例代

我正在制作一个简单的2d绘图程序,其中我有一个顶点数组(比如a1、a2、a3,…),该数组将使用GL_线_带绘制。问题是,假设有3个连续的顶点:p1、p2、p3,现在我想如果(p2=某个特定的顶点值),那么GL_线_带应该在p1处结束,新的GL_线_带从p3处开始,忽略p2。我想在街上的p2处休息一下。我该怎么做?? PS:我试着在线条条的循环中创建(p2处的线条宽度=0),但发现由于opengl是一个状态机,我们不能在glBegin和GLEnd内部更改宽度。还有其他人吗

以下是一些失败的示例代码:

GLfloat thickness;
glBegin(GL_LINE_STRIP);
for(int i = 0; i < points.size(); i++)//points has all vertices stored...points is an array where each element is a structure containing x and y values
{
    if(points[i].x==randomPoint.x || points[i-1].x==randomPoint.x){//checking if it is equal to p2(i am only checking x coordinate,which is sufficient for me to know that this point is to be excluded)
        thickness = 0;

    }else {
        thickness = 4;

    }

    glLineWidth(thickness);
    glVertex2i(points[i].x, points[i].y);
}
GLfloat厚度;
glBegin(GL_线_带);
对于(int i=0;i
如果我答对了问题,您希望在某个顶点处停止线条带(如果它是特定值),并在下一个顶点上开始新的线条带。(如果我误解了,请纠正我)

在要连接的最后一个顶点之后调用
glEnd()
,并在要启动新条带时启动新的
glBegin()

至于宽度部分,您必须在调用
glBegin()
之前设置宽度。线条带(afaik)不能像您所说的那样在绘制状态下更改其宽度。您必须结束绘制调用,更改宽度,返回1个顶点,然后开始新的绘制调用。

成功了!!glBegin(GL\u LINE\u STRIP);例如(inti=0;i