Advertisement
cardel

Problema C1 Practica

May 17th, 2016
362
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.42 KB | None | 0 0
  1. #Genere un cubo C1  centrado en el punto centrado en el punto (0.5,0,5.0,5) con L = 0.3.
  2. #Carlos Andres Delgado Saavedra, ejercicio de ejemplo
  3. #Los puntos calculados son:
  4.  
  5. #Cara inferior y = 0.2
  6. #Cara superior y = 0.8
  7. #Cara izquierda x = 0.2
  8. #Cara derecha x = 0.8
  9. #Cara frontal z = 0.2
  10. #Cara lateral z = 0.8
  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 C1')
  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. def pintar():
  45.  
  46.     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
  47.     glMatrixMode(GL_MODELVIEW) 
  48.     glLoadIdentity()   
  49.     #gluLookAt(GLdouble eyeX,  GLdouble eyeY,  GLdouble eyeZ,  GLdouble centerX,  GLdouble centerY,  GLdouble centerZ,  GLdouble upX,  GLdouble upY,  GLdouble upZ);
  50.    
  51.     #Vista 1
  52.     #Debemos subir en y entonces me ubico en y = 1.2
  53.     #En z y en x utilizo el centro
  54.     #Estoy viendo hacia el centro
  55.     #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y
  56.    
  57.     #gluLookAt(0.5,1.8,0.5,0.5,0.5,0.5,1,0,0)
  58.     #Debo ver roja
  59.    
  60.     #********************************
  61.     #Vista 2
  62.     #Aca vamos a ver la frontal
  63.     #Debemos estar en un z < 0.2 viendo hacia el centro
  64.     #Mi arriba es y+, es la vista frontal
  65.     #gluLookAt(0.5,0.5,-0.5,0.5,0.5,0.5,0,1,0) 
  66.     #Debo ver azul
  67.    
  68.     #Vista 3
  69.     #Debemos bajar en y entonces me ubico en y = 0
  70.     #En z y en x utilizo el centro
  71.     #Estoy viendo hacia el centro
  72.     #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y 
  73.     #gluLookAt(0.5,-0.8,0.5,0.5,0.5,0.5,1,0,0)
  74.     #Debo ver amarillo
  75.        
  76.     #Aplicar transformacion
  77.    
  78.     #3. Envio a su lugar otra vez
  79.     #glTranslatef(0.5,0.5,0.5)
  80.    
  81.     #2 Roto con respecto a x 30 grados
  82.     #glRotatef(45,1,0,0)
  83.        
  84.     #1 envio al origen
  85.     #glTranslatef(-0.5,-0.5,-0.5)
  86.    
  87.     #Pintar cara inferior (AMARILLA)
  88.     glBegin(GL_QUADS)
  89.     glColor3f(1,1,0)
  90.     glVertex3f(0.2,0.2,0.2)
  91.     glVertex3f(0.8,0.2,0.2)
  92.     glVertex3f(0.8,0.2,0.8)
  93.     glVertex3f(0.2,0.2,0.8)
  94.     glEnd()
  95.    
  96.     #Pintar cara superior (ROJA)
  97.     glBegin(GL_QUADS)
  98.     glColor3f(1,0,0)
  99.     glVertex3f(0.2,0.8,0.2)
  100.     glVertex3f(0.8,0.8,0.2)
  101.     glVertex3f(0.8,0.8,0.8)
  102.     glVertex3f(0.2,0.8,0.8)
  103.     glEnd()
  104.    
  105.     #Pintar cara izquierda
  106.     glBegin(GL_QUADS)
  107.     glColor3f(0,1,0)
  108.     glVertex3f(0.2,0.2,0.2)
  109.     glVertex3f(0.2,0.8,0.2)
  110.     glVertex3f(0.2,0.8,0.8)
  111.     glVertex3f(0.2,0.2,0.8)
  112.     glEnd()
  113.    
  114.     #Pintar cara derecha
  115.     glBegin(GL_QUADS)
  116.     glColor3f(0,1,0)
  117.     glVertex3f(0.8,0.2,0.2)
  118.     glVertex3f(0.8,0.8,0.2)
  119.     glVertex3f(0.8,0.8,0.8)
  120.     glVertex3f(0.8,0.2,0.8)
  121.     glEnd()
  122.    
  123.     #Pintar cara frontal (AZUL)
  124.     glBegin(GL_QUADS)
  125.     glColor3f(0,0,1)
  126.     glVertex3f(0.2,0.2,0.2)
  127.     glVertex3f(0.2,0.8,0.2)
  128.     glVertex3f(0.8,0.8,0.2)
  129.     glVertex3f(0.8,0.2,0.2)
  130.     glEnd()
  131.  
  132.     #Pintar cara trasera
  133.     glBegin(GL_QUADS)
  134.     glColor3f(1,1,1)
  135.     glVertex3f(0.2,0.2,0.8)
  136.     glVertex3f(0.2,0.8,0.8)
  137.     glVertex3f(0.8,0.8,0.8)
  138.     glVertex3f(0.8,0.2,0.8)
  139.     glEnd()
  140.     glutSwapBuffers()
  141.        
  142. if __name__=="__main__":
  143.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement