miércoles, 25 de septiembre de 2013

actividades Transformaciones geometricas(piramide Y Poligono)

Actividad 4 
Investigar como se manipulan las transformaciones geométricas en opengl.Con la imagen de su pirámide y las transformaciones geométricas diseñe un programa que rote su pirámide sobre el eje "x" y el eje "y", se mueva de izquierda a derecha y de derecha a izquierda, y reduzca o amplié la piramide.

Codigo(piramide)
'

#include <GL/glut.h>

GLfloat tx= 1.0f;
GLfloat ty = 1.0f;
GLfloat ax = 0.0f; 
GLfloat ay = 0.0f;
GLfloat escala = 1.0f; 

void reshape(int width, int height){
glViewport(0,0,width,height);
glMatrixMode(GL_PROJECTION); 
glLoadIdentity();
glOrtho(-15,15,-15,15,-15,15);
glMatrixMode(GL_MODELVIEW);

}

void DibujaPiramide(void)
{
glColor3f (0.0, 1.0, 1.0);
glBegin(GL_POLYGON);
glVertex3f (1.5, 0.0, 0.0);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

glColor3f(0.60,0.5,0.70);
glBegin(GL_POLYGON);
glVertex3f (0.0, 0.0, 1.5);
glVertex3f (-1.5, 0.0, 0.0);
glVertex3f (0.0, 5.0, 0.0);
glEnd();

 glColor3f(1.0,0.0,0.0);
 glBegin(GL_POLYGON);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(0.0,1.0,0.0);
 glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glVertex3f (0.0, 5.0, 0.0);
 glEnd();

 glColor3f(1.0,0.0,1.0);
 glBegin(GL_POLYGON);
 glVertex3f (1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, 1.5);
 glVertex3f (-1.5, 0.0, 0.0);
 glVertex3f (0.0, 0.0, -1.5);
 glEnd();

}


void display(){

glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(tx,ty,0.0f);
glScalef(escala, escala, escala);
glRotatef(ax, 1.0f, 0.0f, 0.0f);
glRotatef(ay, 0.0f, 1.0f, 0.0f);
DibujaPiramide();
glFlush();
glutSwapBuffers();
ax+=0.1f;
ay+=0.1f;
}
void init(){
glClearColor(0,0,0,0);
glEnable(GL_DEPTH_TEST);
}
void idle()
{
display();
}
void Teclado(unsigned char key, int x, int y){ 
switch (key){
case 'a'://presionar tecla a
if( ty<10.0 ){ty = ty + 1.0;}//se mueve  en y positivo(arriba)
if(ty>0.1 && ty<4){escala = ty;}//y aumenta 
break;
case 'b'://presionar tecla b
if( ty>-10.0 ){ty = ty - 1.0;}//se mueve  en y negatibo(abajo)
if(ty>0.1 && ty<4){escala = ty;}//y disminuye 
break;
case 'd'://presionar tecla d 
if( tx<10.0 ){tx = tx + 1.0;}//se mueve  en x positivo(Derecha) 
break;
case 'i'://presionar tecla i
if( tx>-10.0 ){tx = tx - 1.0;}//se mueve en x negativo(Izquierda)
break;

}
switch (key) {
case 27:
exit(0);
break;
}
}
int main(int argc, char **argv) 
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowPosition(400,200);
glutInitWindowSize(800,500);
glutCreateWindow("Ruben De La Cruz Venegas");
init();glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutKeyboardFunc(Teclado);
glutMainLoop();
return 0;}








Actividad 6
Usando su modelo de piramide 3d aplique las transformaciones

a)Vector Traslación (-2,-2,0).
b) Escalación (.5,.5,.5) Rotación.
c) 45grados eje z.



actividad#7

Usando su modelo de piramide, con los siguientes puntos dibuje el polígono correspondiente y aplique las siguientes transformaciones:

p0=(2,2) , p1(7,2), p2(7,7), p3(2,7) 

Escriba todos los cálculos realizados.


a) Vector Traslación (-2,-2) b) Escalación (0.5,0.5) c) Rotacion 45grados eje z tomando el p0 como base.





No hay comentarios.:

Publicar un comentario