1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#!/usr/bin/env python
import sys
from OpenGL.GL import *
from OpenGL.Tk import *
try:
from Numeric import *
except:
print "This demo requires the Numeric extension, sorry."
sys.exit()
from RandomArray import *
n=50
def shuffle(a,b):
return ravel(transpose(reshape(concatenate([a,b]), (2,len(a)))))
def redraw(o):
glClearColor(1, 1, 1, 0)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
glOrtho(-1, 1, -1, 1, -1, 1)
glDisable(GL_LIGHTING)
glDrawArrays(GL_LINE_LOOP, 0, n)
glEnable(GL_LIGHTING)
def main():
f = Frame()
f.pack(side = 'top', expand = 1)
quit = Button(f, text = 'Quit', command = sys.exit)
quit.pack(side = 'top')
o = Opengl(width = 400, height = 400, double = 1)
a = arange(0,n)
vertex = shuffle(cos(2*pi*a/n), sin(2*pi*a/n))
vertex1 = shuffle(0.5*cos(2*pi*a/n), 0.5*sin(2*pi*a/n))
color=ones((n, 3), 'i')
color[0]=[1,0,0]
color[1]=[1,1,0]
color[1]=[1,0,0]
color = random(n*3)
glVertexPointer(2, 0, vertex)
glVertexPointer(2, 0, vertex)
glColorPointer(3, 0, color)
glEnable(GL_VERTEX_ARRAY);
glEnable(GL_COLOR_ARRAY);
o.redraw = redraw
o.pack(side = 'top', expand = 1, fill = 'both')
o.mainloop()
main()
|