Advertisement
cardel

Punto C2 Taller practico

May 17th, 2016
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.59 KB | None | 0 0
  1. #Genere un cubo C2  centrado en el punto centrado en el punto (4,4,4,) con L = 7.
  2. #Carlos Andres Delgado Saavedra, ejercicio de ejemplo
  3. #Los puntos calculados son:
  4.  
  5. #Cara inferior y = 0.5
  6. #Cara superior y = 7.5
  7. #Cara izquierda x = 0.5
  8. #Cara derecha x = 7.5
  9. #Cara frontal z = 0.5
  10. #Cara lateral z = 7.5
  11. from OpenGL.GL import *
  12. from OpenGL.GLU import *
  13. from OpenGL.GLUT import *
  14.  
  15. def main():
  16.     glutInit(sys.argv)
  17.     #Habilitar profundidad con GLUT_DEPTH
  18.     glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH)
  19.     glutInitWindowSize(600,600)
  20.     glutInitWindowPosition(100,100)
  21.     glutCreateWindow(b'Ejercicio C2')
  22.    
  23.     #Habilitar buffer de profundidad
  24.     glEnable(GL_DEPTH_TEST)
  25.    
  26.     #Habilitar cara
  27.     glFrontFace(GL_CCW)
  28.     glutDisplayFunc(pintar)
  29.     glutIdleFunc(pintar)
  30.     glutReshapeFunc(reshape);
  31.     InitGL(500,500)
  32.     glutMainLoop()
  33.    
  34. def InitGL(largo, alto):
  35.     glClearColor(0,0,0,0)
  36.     #Habilitar profundiad
  37.     glEnable(GL_DEPTH_TEST)
  38.    
  39.  
  40. def reshape(x, y):
  41.     glMatrixMode(GL_PROJECTION)
  42.     glLoadIdentity()   
  43.    
  44.     #Aplicar proyeccion ortografica para que se pueda ver
  45.     #Recuerden que el sentido de z es negativo
  46.     #Algo cerca, sin embargo hay que darle espacio a la camara
  47.     #glOrtho(0,8,0,8,0,-8)
  48.     glOrtho(0,12,0,12,0,-12)
  49.  
  50. def pintar():
  51.  
  52.     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
  53.     glMatrixMode(GL_MODELVIEW) 
  54.     glLoadIdentity()   
  55.     #gluLookAt(GLdouble eyeX,  GLdouble eyeY,  GLdouble eyeZ,  GLdouble centerX,  GLdouble centerY,  GLdouble centerZ,  GLdouble upX,  GLdouble upY,  GLdouble upZ);
  56.    
  57.     #Vista 1
  58.     #Debemos subir en y entonces me ubico en y = 1.2
  59.     #En z y en x utilizo el centro
  60.     #Estoy viendo hacia el centro
  61.     #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y
  62.    
  63.     #gluLookAt(4,7.5,4,4,4,4,0,0,1)
  64.     #Debo ver roja
  65.    
  66.     #********************************
  67.     #Vista 2
  68.     #Aca vamos a ver la frontal
  69.     #Debemos estar en un z viendo hacia el centro
  70.     #Mi arriba es y+, es la vista frontal
  71.     #gluLookAt(4,4,0.5,4,4,4,0,1,0)
  72.     #Debo ver azul
  73.    
  74.     #Vista 3
  75.     #Debemos bajar en y entonces me ubico en y = 0
  76.     #En z y en x utilizo el centro
  77.     #Estoy viendo hacia el centro
  78.     #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y 
  79.  
  80.     #gluLookAt(4,0.5,4,4,4,4,0,0,1)
  81.     #Debo ver amarillo
  82.        
  83.     #Aplicar transformacion
  84.    
  85.     #3. Envio a su lugar otra vez
  86.     #glTranslatef(0.5,0.5,0.5)
  87.    
  88.     #2 Roto con respecto a x 30 grados
  89.     #glRotatef(45,1,0,0)
  90.        
  91.     #1 envio al origen
  92.     #glTranslatef(-0.5,-0.5,-0.5)
  93.    
  94.     #Pintar cara inferior (AMARILLA)
  95.     glBegin(GL_QUADS)
  96.     glColor3f(1,1,0)
  97.     glVertex3f(0.5,0.5,0.5)
  98.     glVertex3f(7.5,0.5,0.5)
  99.     glVertex3f(7.5,0.5,7.5)
  100.     glVertex3f(0.5,0.5,7.5)
  101.     glEnd()
  102.    
  103.     #Pintar cara superior (ROJA)
  104.     glBegin(GL_QUADS)
  105.     glColor3f(1,0,0)
  106.     glVertex3f(0.5,7.5,0.5)
  107.     glVertex3f(7.5,7.5,0.5)
  108.     glVertex3f(7.5,7.5,7.5)
  109.     glVertex3f(0.5,7.5,7.5)
  110.     glEnd()
  111.    
  112.     #Pintar cara izquierda
  113.     glBegin(GL_QUADS)
  114.     glColor3f(0,1,0)
  115.     glVertex3f(0.5,0.5,0.5)
  116.     glVertex3f(0.5,7.5,0.5)
  117.     glVertex3f(0.5,7.5,7.5)
  118.     glVertex3f(0.5,0.5,7.5)
  119.     glEnd()
  120.    
  121.     #Pintar cara derecha
  122.     glBegin(GL_QUADS)
  123.     glColor3f(0,1,0)
  124.     glVertex3f(7.5,0.5,0.5)
  125.     glVertex3f(7.5,7.5,0.5)
  126.     glVertex3f(7.5,7.5,7.5)
  127.     glVertex3f(7.5,0.5,7.5)
  128.     glEnd()
  129.    
  130.     #Pintar cara frontal (AZUL)
  131.     glBegin(GL_QUADS)
  132.     glColor3f(0,0,1)
  133.     glVertex3f(0.5,0.5,0.5)
  134.     glVertex3f(7.5,0.5,0.5)
  135.     glVertex3f(7.5,7.5,0.5)
  136.     glVertex3f(0.5,7.5,0.5)
  137.     glEnd()
  138.  
  139.     #Pintar cara trasera
  140.     glBegin(GL_QUADS)
  141.     glColor3f(1,1,1)
  142.     glVertex3f(0.5,0.5,7.5)
  143.     glVertex3f(7.5,0.5,7.5)
  144.     glVertex3f(7.5,7.5,7.5)
  145.     glVertex3f(0.5,7.5,7.5)
  146.     glEnd()
  147.     glutSwapBuffers()
  148.        
  149. if __name__=="__main__":
  150.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement