Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Genere un cubo C2 centrado en el punto centrado en el punto (4,4,4,) con L = 7.
- #Carlos Andres Delgado Saavedra, ejercicio de ejemplo
- #Los puntos calculados son:
- #Cara inferior y = 0.5
- #Cara superior y = 7.5
- #Cara izquierda x = 0.5
- #Cara derecha x = 7.5
- #Cara frontal z = 0.5
- #Cara lateral z = 7.5
- from OpenGL.GL import *
- from OpenGL.GLU import *
- from OpenGL.GLUT import *
- def main():
- glutInit(sys.argv)
- #Habilitar profundidad con GLUT_DEPTH
- glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH)
- glutInitWindowSize(600,600)
- glutInitWindowPosition(100,100)
- glutCreateWindow(b'Ejercicio C2')
- #Habilitar buffer de profundidad
- glEnable(GL_DEPTH_TEST)
- #Habilitar cara
- glFrontFace(GL_CCW)
- glutDisplayFunc(pintar)
- glutIdleFunc(pintar)
- glutReshapeFunc(reshape);
- InitGL(500,500)
- glutMainLoop()
- def InitGL(largo, alto):
- glClearColor(0,0,0,0)
- #Habilitar profundiad
- glEnable(GL_DEPTH_TEST)
- def reshape(x, y):
- glMatrixMode(GL_PROJECTION)
- glLoadIdentity()
- #Aplicar proyeccion ortografica para que se pueda ver
- #Recuerden que el sentido de z es negativo
- #Algo cerca, sin embargo hay que darle espacio a la camara
- #glOrtho(0,8,0,8,0,-8)
- glOrtho(0,12,0,12,0,-12)
- def pintar():
- glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
- glMatrixMode(GL_MODELVIEW)
- glLoadIdentity()
- #gluLookAt(GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ);
- #Vista 1
- #Debemos subir en y entonces me ubico en y = 1.2
- #En z y en x utilizo el centro
- #Estoy viendo hacia el centro
- #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y
- #gluLookAt(4,7.5,4,4,4,4,0,0,1)
- #Debo ver roja
- #********************************
- #Vista 2
- #Aca vamos a ver la frontal
- #Debemos estar en un z viendo hacia el centro
- #Mi arriba es y+, es la vista frontal
- #gluLookAt(4,4,0.5,4,4,4,0,1,0)
- #Debo ver azul
- #Vista 3
- #Debemos bajar en y entonces me ubico en y = 0
- #En z y en x utilizo el centro
- #Estoy viendo hacia el centro
- #Mi arriba puede ser hacia z+ o x+, suponga que voltea el cubo y la profundidad ahora es y
- #gluLookAt(4,0.5,4,4,4,4,0,0,1)
- #Debo ver amarillo
- #Aplicar transformacion
- #3. Envio a su lugar otra vez
- #glTranslatef(0.5,0.5,0.5)
- #2 Roto con respecto a x 30 grados
- #glRotatef(45,1,0,0)
- #1 envio al origen
- #glTranslatef(-0.5,-0.5,-0.5)
- #Pintar cara inferior (AMARILLA)
- glBegin(GL_QUADS)
- glColor3f(1,1,0)
- glVertex3f(0.5,0.5,0.5)
- glVertex3f(7.5,0.5,0.5)
- glVertex3f(7.5,0.5,7.5)
- glVertex3f(0.5,0.5,7.5)
- glEnd()
- #Pintar cara superior (ROJA)
- glBegin(GL_QUADS)
- glColor3f(1,0,0)
- glVertex3f(0.5,7.5,0.5)
- glVertex3f(7.5,7.5,0.5)
- glVertex3f(7.5,7.5,7.5)
- glVertex3f(0.5,7.5,7.5)
- glEnd()
- #Pintar cara izquierda
- glBegin(GL_QUADS)
- glColor3f(0,1,0)
- glVertex3f(0.5,0.5,0.5)
- glVertex3f(0.5,7.5,0.5)
- glVertex3f(0.5,7.5,7.5)
- glVertex3f(0.5,0.5,7.5)
- glEnd()
- #Pintar cara derecha
- glBegin(GL_QUADS)
- glColor3f(0,1,0)
- glVertex3f(7.5,0.5,0.5)
- glVertex3f(7.5,7.5,0.5)
- glVertex3f(7.5,7.5,7.5)
- glVertex3f(7.5,0.5,7.5)
- glEnd()
- #Pintar cara frontal (AZUL)
- glBegin(GL_QUADS)
- glColor3f(0,0,1)
- glVertex3f(0.5,0.5,0.5)
- glVertex3f(7.5,0.5,0.5)
- glVertex3f(7.5,7.5,0.5)
- glVertex3f(0.5,7.5,0.5)
- glEnd()
- #Pintar cara trasera
- glBegin(GL_QUADS)
- glColor3f(1,1,1)
- glVertex3f(0.5,0.5,7.5)
- glVertex3f(7.5,0.5,7.5)
- glVertex3f(7.5,7.5,7.5)
- glVertex3f(0.5,7.5,7.5)
- glEnd()
- glutSwapBuffers()
- if __name__=="__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement