import sys from OpenGL.GLUT import * from OpenGL.GL import * from OpenGL.GLU import * points = [ { "xyz":[0.0, 0.0], "color":[1, 1, 1] }, { "xyz":[0.4, 0.0], "color":[0, 1, 0] }, { "xyz":[0.8, 0.8] }, { "xyz":[0.0, -1.0], "color":[0, 1, 1] }, { "xyz":[-1.0, 0.0], "color":[1, 0, 1] }, { "xyz":[-0.5, -0.2], "color":[1, 0, 0] } ] def draw(): glClear(GL_COLOR_BUFFER_BIT) glBegin(GL_TRIANGLES) for p in points: if p.has_key("color"): glColor3fv(p["color"]) glVertex2fv(p["xyz"]) glEnd() glFlush() def keyboard(key, x, y): if key == chr(27): sys.exit(0) def reshape(w, h): glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluOrtho2D(-1, 1, -1*h/w, 1*h/w) glMatrixMode(GL_MODELVIEW) glutInit(sys.argv) glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB) glutInitWindowSize(400, 400) glutInitWindowPosition(0,0) glutCreateWindow(sys.argv[0]) glutDisplayFunc(draw) glutKeyboardFunc(keyboard) glutReshapeFunc(reshape) glutMainLoop()