![alt text](https://i.stack.imgur.com/4WeKV.png)
Я предполагаю, что ваша треугольная полоса всегда подключена одинаково (что, я считаю, верно для OpenGL).
- "Нижние" вершинывсегда два разнесенных: A, C, E, ...
- "Верхние" вершины всегда две раздельные: B, D, F, ...
Взять "нижний список и добавьте обратную сторону «верхнего» списка.(ACEFDB для примера)
Или, точнее, используя индекс на основе нуля вместо букв:
// do "bottom"
for ( i = 0; i < N; i += 2 )
addVertex( i )
// do "top"
largestOddNumberLessThanN = N % 2 == 0 ? N - 1 : N - 2;
for ( i = largestOddNumberLessThanN; i >= 0; i -= 2 )
addVertex( i )