C++ 使用三角形带将三角形移动到新列

C++ 使用三角形带将三角形移动到新列,c++,opengl,C++,Opengl,我在将三角形移动到另一列时遇到问题。我能够成功地将它们添加到正确的方向(图中),但当我想将它们移动到新列中时,它会从旧点(最右侧)获取点,并且我希望在提升网格时将它们连接到上部三角形,条带将使网格上升 // triangles without a new column std::vector<triangle_vertices_t> vertices = { { {0, 0, 0}, {1, 0, 0}, {0, 0, 1} }, { {1, 0, 0}, {0, 0

我在将三角形移动到另一列时遇到问题。我能够成功地将它们添加到正确的方向(图中),但当我想将它们移动到新列中时,它会从旧点(最右侧)获取点,并且我希望在提升网格时将它们连接到上部三角形,条带将使网格上升

// triangles without a new column
std::vector<triangle_vertices_t> vertices = {
    { {0, 0, 0}, {1, 0, 0}, {0, 0, 1} },
    { {1, 0, 0}, {0, 0, 1}, {1, 0, 1} },
    { {0, 0, 0 + 1}, {1, 0, 0 + 1}, {0, 0, 1 + 1} },
    { {1, 0, 0 + 1}, {0, 0, 1 + 1}, {1, 0, 1 + 1} }
};
所以我的问题是,如何在连接到上面的三角形时添加列? 关于使用inidces的可能性

另一个简单的技巧是将条带的最后一个顶点和第一个顶点添加两次:

A C E G
+---- +-----+-----+
|   / |   / |   / |
| /   | /   | /   |
B+-----+-----+-----+
|/| D F H
| /   |
+-----+
I J
三角带:

A-B-C-D-E-F-G-H-H-B-B-I-D-J

这是因为对于具有两个相同点的三角形基本体,根本没有光栅化。因此,“三角形”
G-H-H
H-H-B
H-B-B
B-B-I
不会生成任何片段。

仍然存在一个问题,我如何将上排与底部rom连接(添加新图片)?@pesuww采用相同的方法。如果要重新启动三角形条带,则必须添加零件的最后一个顶点和第一个顶点两次。但实际上我不太明白你的意思。无论如何,这似乎是一个全新的问题。所以请。
// vertices with a new column
std::vector<triangle_vertices_t> vertices = {
    { {0, 0, 0}, {1, 0, 0}, {0, 0, 1} },
    { {1, 0, 0}, {0, 0, 1}, {1, 0, 1} },
    { {0, 0, 0 + 1}, {1, 0, 0 + 1}, {0, 0, 1 + 1} },
    { {1, 0, 0 + 1}, {0, 0, 1 + 1}, {1, 0, 1 + 1} },
    { {1 - 1, 0, 0}, {1 - 1, 0, 1}, {0 - 1, 0, 1} },
    { {-1, 0, 0}, {1 - 1, 0, 0}, {-1, 0, 1} },
};
//drawing the triangles
glBindVertexArray(m_vao);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3 * amount_of_triangles);
glBindVertexArray(0);