我试图在这里创建一个2D八边形,但由于某种原因,我没有成功。输出只是一个黑屏。我很确定问题出在代码的这一部分:
def on_draw(self):
self.clear()
glBegin(GL_OCTAGONS)
glColor3ub(0,255,0)
glVertex2f(0,0)
glColor3ub(0,255,0)
glVertex2f(10,0)
glColor3ub(0,255,0)
glVertex2f(15,5)
glColor3ub(0,255,0)
glVertex2f(15,15)
glColor3ub(0,255,0)
glVertex2f(10,20)
glColor3ub(0,255,0)
glVertex2f(0,20)
glColor3ub(0,255,0)
glVertex2f(-5,15)
glColor3ub(0,255,0)
glVertex2f(-5,5)
glEnd()
GL_OCTAGONS
不是glBegin
的有效参数。这只是你的一个武断的假设。您必须使用OpenGL Primitive类型之一
使用GL_POLYGON
或GL_TRIANGLE_FAN
:
glBegin(GL_OCTAGONS)
glBegin(GL_POLYGON)