Итак, я полный новичок как в pyglet, так и в OpenGL, мне интересно, почему это не работает:
def DrawCircle(cx, cy, r, segments):
theta = 2*3.1415926/segments
c = math.cos(theta)
s = math.sin(theta)
x = r
y = 0
pyglet.gl.glBegin(pyglet.gl.GL_POLYGON)
pyglet.gl.glColor3f(0.05,0.2,0.9)
for counter in range(segments):
pyglet.gl.glVertex2f(x+cx, y+cy)
t = x
x = c * x - s * y
y = s * t + c * y
pyglet.gl.glEnd()
if __name__ == '__main__':
window = pyglet.window.Window(960,1010)
window.set_location(959,20)
@window.event
def on_draw():
window.clear()
def update(dt):
print(dt)
DrawCircle(500,500,20,30)
pyglet.clock.schedule_once(update,0.6)
pyglet.app.run()
Проще говоря, если я вызову DrawCircle из on_draw, он создаст именно такой круг, как хотелось бы. Если я запланирую это, ничего не будет нарисовано. Сам планировщик работает, потому что dt печатает в консоль. Я предполагаю, что on_draw устанавливает контекст или что-то, что позволяет ему рисовать, тогда как, когда я планирую его, контекст или, возможно, буфер неправильный. Любая помощь будет принята с благодарностью.