import sys from math import * from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * width = 400 height = 400 which = 'quad' # Example 1 def quad(): glColor3d(0.0, 0.8, 1.0) glBegin(GL_POLYGON) glVertex2d(-0.5, -0.5) glVertex2d( 0.5, -0.5) glVertex2d( 0.5, 0.5) glVertex2d(-0.5, 0.5) glEnd() glFlush() # Example 2 def triangle(): glColor3d(0.0, 0.8, 1.0) glBegin(GL_POLYGON) glVertex2d(-0.5, -0.5) glVertex2d( 0.5, -0.5) glVertex2d( 0.5, 0.5) glEnd() glFlush() # Example 3 def circle(): glColor3d(0.8, 0.6, 0.8) glBegin(GL_LINE_LOOP) for ang in range(0, 360, 2): x = cos(ang*pi/180) y = sin(ang*pi/180) glVertex2d(x, y) glEnd() glFlush() # Example 4 def spiro( rOuter, rInner, rOffset, revs ): theta = 0.0 glColor3d(1.0, 0.0, 0.0) glLineWidth(1) for i in range(int(360*revs)): glPushMatrix() glRotated(theta, 0, 0, 1.0) glTranslated(rOuter-rInner, 0, 0) glRotated(-theta*rOuter/rInner,0,0,1) glBegin(GL_POINTS) glVertex2d(rOffset, 0) glEnd() glPopMatrix() theta += 1.0 glFlush() def display(): glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) #quad() #triangle() #circle() #spiro( 1, .63, .59, 100) #spiro( 1, .6, .25, 5) #spiro( 1, .55, .46, 50) spiro( 1, .77, .35, 50) def main(): glutInit(sys.argv) glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB) glutInitWindowSize(width, height) glutInitWindowPosition(100, 100) glutCreateWindow("Simple OpenGL Examples") glutDisplayFunc(display) glutMainLoop() if __name__ == "__main__": main()