jueves, 10 de octubre de 2013

MODELADO DE COMPUTADORA (USB)

// USB.cpp: define el punto de entrada de la aplicación de consola.
//

#include "stdafx.h"
#include <stdlib.h>
#include <GL/glut.h>


GLfloat xm= 1.5f;
GLfloat escala = 1.5f;
GLfloat angulo = 0.0f;

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

}


void display(){

glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
angulo+=0.2f;

glTranslatef(xm,0.0f,0.0f);
glScalef(escala, escala, escala);
glRotatef(angulo, 1.0f, 0.0f, 0.0f);


//CUERPO
 glColor3f(1,0,0);
 glBegin(GL_POLYGON);
 
 glVertex3f(8,0,0);
 glVertex3f(8,2.5,0);
 glVertex3f(5,2.5,0);
 glVertex3f(5,0,0);

 glEnd();

//ENTRADA
 glColor3f(0.75,0.75,0.75);
 glBegin(GL_POLYGON);
 glVertex3f(5.5,2.5,0.0);
  glVertex3f(5.5,3.5,0.0);
   glVertex3f(7.5,3.5,0.0);
    glVertex3f(7.5,2.5,0.0);
glEnd();

//CUADRO DE DATOS
 glColor3f(0,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(5.65,2.75,0.1);
  glVertex3f(5.65,3.25,0.1);
   glVertex3f(6.35,3.25,0.1);
    glVertex3f(6.35,2.75,0.1);
    glEnd();
    //CUADRO DE VOLTAJE
glColor3f(0,0,0);
 glBegin(GL_POLYGON);
 glVertex3f(6.55,2.75,0.1);
  glVertex3f(6.55,3.25,0.1);
   glVertex3f(7.25,3.25,0.1);
    glVertex3f(7.25,2.75,0.1);
    glEnd();

    //FRANJA
    glColor3f(0,0,1);
 glBegin(GL_POLYGON);
 glVertex3f(7,.2,.1);
 glVertex3f(7,2.3,.1);
 glVertex3f(6,2.3,.1);
 glVertex3f(6,.2,.1);
    glEnd();

glFlush();
glutSwapBuffers();



}void idle()
{
display();
}

void init()
{
glClearColor(0,0,0,0);

}



void keyboard(unsigned char key, int x, int y)
{
switch (key) {
case 27:
exit(0);
break;
}
}
void ArrowKey(int key, int x, int y){

switch (key){
case GLUT_KEY_RIGHT:
if( xm<2.5){xm = xm + 0.2;}
if(xm>0.1 && xm<2){escala = xm;}
break;


case GLUT_KEY_LEFT:
if( xm>-2.5){xm = xm - 0.2;}
if(xm>0.1 && xm<1){escala = xm;}
break;



}
}


int main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowPosition(500,60);
glutInitWindowSize(600,500);
glutCreateWindow("USB");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
   glEnable(GL_DEPTH_TEST);
glutIdleFunc(idle);
glutKeyboardFunc(keyboard);
glutSpecialFunc(ArrowKey);
glutMainLoop();


}

No hay comentarios:

Publicar un comentario