import sys, math, random from pyglet.gl import * window = pyglet.window.Window() points = [] for i in range(0,41): angle = (i/40.0) * math.pi * 2 x,y = math.sin(angle), math.cos(angle) r,g,b = random.uniform(0,1), random.uniform(0,1), random.uniform(0,1) points.append([x,y,r,g,b]) wheelScale = 10.0 wheelRot = 0 wheelTrans = [50,50] def drawWheel(): glBegin(GL_TRIANGLE_FAN) glColor3f(1,1,1) glVertex2f(0,0) for p in points: glColor3f(p[2],p[3],p[4]) glVertex2f(p[0],p[1]) glEnd() @window.event def on_draw(): glClear(GL_COLOR_BUFFER_BIT) glViewport(0,0,window.width,window.height) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluOrtho2D(0,window.width,0,window.height) glMatrixMode(GL_MODELVIEW) glLoadIdentity() glTranslatef(wheelTrans[0], wheelTrans[1], 0) glRotatef(wheelRot, 0, 0, 1) glScalef(wheelScale, wheelScale, wheelScale) drawWheel() glFlush() @window.event def on_key_press(key,modifiers): global wheelScale, wheelRot, wheelTrans print key if key == pyglet.window.key.ESCAPE: sys.exit(0) elif key == pyglet.window.key.W: wheelTrans[1] += 5 elif key == pyglet.window.key.A: wheelTrans[1] -= 5 elif key == pyglet.window.key.S: wheelTrans[0] -= 5 elif key == pyglet.window.key.D: wheelTrans[0] += 5 elif key == pyglet.window.key.UP: wheelScale += 2 elif key == pyglet.window.key.DOWN: wheelScale -= 2 elif key == pyglet.window.key.LEFT: wheelRot += 10 elif key == pyglet.window.key.RIGHT: wheelRot -= 10 pyglet.app.run()