glBegin(GL_TRIANGLE_STRIP);
for(i; i <= degree; i++)
{
float
sunX=-200/2*cos(i*M_PI/180),
sunZ=200/2*sin(i*M_PI/180);
glVertex3f(0, 0, 0);
glVertex3f(sunX, 0, sunZ);
}
glEnd();
此代码有效。但...
for(i; i <= degree; i++)
{
float
sunX=-200/2*cos(i*M_PI/180),
sunZ=200/2*sin(i*M_PI/180);
glBegin(GL_TRIANGLE_STRIP);
glVertex3f(0, 0, 0);
glVertex3f(sunX, 0, sunZ);
glEnd();
}
但这是行不通的。 WTF?逻辑在哪里?
我需要在循环中插入另一个代码以输出文本:
glPushAttrib(GL_LIST_BIT);
glListBase(1000);
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);
glPopAttrib();
但我无法插入它,因为beetwen glBegin(GL_TRIANGLE_STRIP)和glEnd()无法正常工作。而且我不能在里面写glBegin(GL_TRIANGLE_STRIP),glEnd()进行循环,因为它在那里不起作用。
最佳答案
每次调用glBegin(GL_TRIANGLE_STRIP);
时,您都会开始创建一个全新的三角带。它不会连接到for循环以前的迭代中的其他顶点。