使用OpenGL在拖动鼠标上绘制不连续的线条

时间:2014-10-05 14:12:02

标签: c++ opengl

我想制作简单的画家程序,所以我学习OpenGL。 今天我用GL_POINTSGL_LINE_STRIP练习画线。这是一个问题。 例如

我想这样画。但如果我使用glBegin(GL_LINE_STRIP)

看起来像这张图片。

每一行都是连续的。 如何删除那些行?它困难吗? (无论如何抱歉我的英语......)

1 个答案:

答案 0 :(得分:1)

您需要再次为每个新行调用glBegin(GL_LINE_STRIP)以分隔它们。如果您有以下行列表:

std::vector<std::vector<Point>> lines;

然后你可以像这样绘制它们:

for (auto& line : lines) {
    glBegin(GL_LINE_STRIP);

    for (auto& point : line) {
        glVertex2f(point.x, point.y);
    }

    glEnd(GL_LINE_STRIP);
}

但是,您应该停止使用glBegin等函数并使用现代OpenGL函数,如教程中所述: