我想制作简单的画家程序,所以我学习OpenGL。
今天我用GL_POINTS
和GL_LINE_STRIP
练习画线。这是一个问题。
例如
我想这样画。但如果我使用glBegin(GL_LINE_STRIP)
看起来像这张图片。
每一行都是连续的。 如何删除那些行?它困难吗? (无论如何抱歉我的英语......)
答案 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函数,如教程中所述: