Advertisement
Techmo

GL_CUBES

May 23rd, 2014
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.55 KB | None | 0 0
  1. __author__ = 'bradly.tillmann'
  2. from OpenGL.GL import *
  3. from OpenGL.GLUT import *
  4. from OpenGL.GLU import *
  5. import pygame
  6. from pygame.locals import *
  7. import sys
  8. #import serial
  9. import os
  10. import threading
  11.  
  12. ESCAPE = '\033'
  13.  
  14. window = 0
  15.  
  16. #rotation
  17. X_AXIS = 0.0
  18. Y_AXIS = 0.0
  19. Z_AXIS = 0.0
  20. global loc_x
  21. global loc_y
  22. global loc_z
  23. global mousex
  24. global mousey
  25. loc_x = 0
  26. loc_y = 0
  27. loc_z = 0
  28. xpos = 0
  29. ypos = 0
  30. DIRECTION = 1
  31. file = open("key.txt", "a")
  32. position = (0, 0, 5)
  33. horizontalAngle = 3.14
  34. verticalAngle = 0.0
  35. initialFoV = 45.0
  36. speed = 3.0
  37. mouseSpeed = 0.005
  38. def InitGL(Width, Height):
  39.  
  40.         glClearColor(0.0, 0.0, 0.0, 0.0)
  41.         glClearDepth(1.0)
  42.         glDepthFunc(GL_LESS)
  43.         glEnable(GL_DEPTH_TEST)
  44.         glShadeModel(GL_SMOOTH)
  45.         glMatrixMode(GL_PROJECTION)
  46.         glLoadIdentity()
  47.         gluPerspective(45.0, float(Width)/float(Height), 0.1, 100.0)
  48.         glMatrixMode(GL_MODELVIEW)
  49.  
  50. def keyPressed(key, x, y):
  51.     if key == 'w':
  52.         global loc_x
  53.         loc_x += 1
  54.     if key == 's':
  55.         global loc_x
  56.         loc_x -= 1
  57.     if key == 'a':
  58.         global loc_y
  59.         loc_y += 1
  60.     if key == 'd':
  61.         global loc_y
  62.         loc_y -= 1
  63.     if key == 'e':
  64.         global loc_z
  65.         loc_z += 0.1
  66.     if key == 'q':
  67.         global loc_z
  68.         loc_z -= 0.1
  69. def handler(x, y ):
  70.     global xpos, ypos
  71.     xpos = x
  72.     ypos = y
  73. def cube(x, y, z, red, green, blue):
  74.         glBegin(GL_QUADS)
  75.  
  76.         glColor3f(red, green, blue)
  77.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  78.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  79.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  80.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  81.  
  82.         glColor3f(red, green, blue)
  83.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  84.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  85.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  86.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  87.  
  88.         glColor3f(red, green, blue)
  89.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  90.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  91.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  92.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  93.  
  94.         glColor3f(red, green, blue)
  95.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  96.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  97.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  98.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  99.  
  100.         glColor3f(red, green, blue)
  101.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  102.         glVertex3f(-1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  103.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  104.         glVertex3f(-1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  105.  
  106.         glColor3f(red, green, blue)
  107.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2),-1.0 + (z * 2))
  108.         glVertex3f( 1.0 + (x * 2), 1.0 + (y * 2), 1.0 + (z * 2))
  109.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2), 1.0 + (z * 2))
  110.         glVertex3f( 1.0 + (x * 2),-1.0 + (y * 2),-1.0 + (z * 2))
  111.  
  112.         glEnd()
  113. def DrawGLScene():
  114.         global X_AXIS,Y_AXIS,Z_AXIS, xpos, ypos
  115.         global DIRECTION
  116.  
  117.         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
  118.         glLoadIdentity()
  119.         glTranslatef(0.0,0.0,-6.0)
  120.  
  121.         glRotatef(X_AXIS,1.0,0.0,0.0)
  122.         glRotatef(Y_AXIS,0.0,1.0,0.0)
  123.         glTranslatef(0.0, 0.0, float(Z_AXIS))
  124.  
  125.         # Draw Cube (multiple quads)
  126.         cube(0, 0, 0, 0, 1, 0)
  127.         cube(1, 0, 0, 1, 0, 0)
  128.         cube(0, 0, 1, 0, 0, 1)
  129.  
  130.         #X_AXIS = loc_x
  131.         X_AXIS = ypos
  132.         Z_AXIS = loc_z
  133.         Y_AXIS = xpos
  134.         glutSwapBuffers()
  135.  
  136.  
  137.  
  138. def main():
  139.  
  140.         global window
  141.  
  142.         glutInit(sys.argv)
  143.         glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH)
  144.         glutInitWindowSize(1024,768)
  145.         glutInitWindowPosition(200,200)
  146.         window = glutCreateWindow('OpenGL Python Cube')
  147.         glutDisplayFunc(DrawGLScene)
  148.         glutIdleFunc(DrawGLScene)
  149.         glutMotionFunc(handler)
  150.         glutKeyboardFunc(keyPressed)
  151.         glutKeyboardFunc(keyPressed)
  152.         InitGL(640, 480)
  153.         glutMainLoop()
  154.  
  155. def display():
  156.  
  157.     glClear(GL_COLOR_BUFFER_BIT)
  158.  
  159.     glBegin(GL_LINES)
  160.     glVertex2f(1.0, 1.0)
  161.     glVertex2f(-1.0, -1.0)
  162.     glEnd()
  163.  
  164.     glutSwapBuffers()
  165.  
  166. if __name__ == "__main__":
  167.         main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement