sábado, 22 de marzo de 2014

Uso del Teclado para dibujar

En esta ocasión se realizó un programa que permite realizar una acción reconociendo las teclas arriba, abajo,izquierda y derecha de nuestro teclado, esto se logra haciendo uso de la instrucción specialKeyInput, así como cualquier tecla de nuestro teclado mediante la instrucción keyInput.



#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <iostream>
#endif

#include <stdlib.h>

using namespace std;
float radio=0.0;
float valor_x=0.0;
float valor_y=0.0;


//La función que nos va estar dibujando

void Dibuja(){
    cerr << "Dibuja() " << " valor_x:" << valor_x << " valor_y:" << valor_y << "\n";
    glClearColor(0,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT);
    /*GL_PROJECTION permite mover el punto de referencia (0,0,0) a donde se le indique*/
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();

    glTranslatef(valor_x,valor_y,0.0);
    glRotatef(60,1,0,0);
    //glRotated(1,0,0,1);
    glColor3f(1.0,1.0,0.0);
    glutWireSphere(0.2,15,15);
    glFlush();
}

void keyInput(unsigned char key, int x, int y){
    switch (key){
    case 'q':
            exit(0);
            break;
    }
}

void specialKeyInput(int key, int x, int y){
    if(key==GLUT_KEY_DOWN){
        valor_y=valor_y-0.1;
        if(valor_y<=-1)
            valor_y=-1;
    }
    if(key == GLUT_KEY_LEFT){
        valor_x=valor_x-0.1;
        if(valor_x<=-1)
            valor_x=-1;
    }
    if(key == GLUT_KEY_UP){
        valor_y=valor_y+0.1;
        if(valor_y>=1)
            valor_y=1;
    }
    if(key == GLUT_KEY_RIGHT){
        valor_x=valor_x+0.1;
        if(valor_x>=1)
            valor_x=1;
    }

    glutPostRedisplay();
}



int main(){
    cerr <<"main() \n";
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
    glutInitWindowSize(590,590);
    glutCreateWindow("");
    glutDisplayFunc(Dibuja);
    glutKeyboardFunc(keyInput);
    glutSpecialFunc(specialKeyInput);
    glutMainLoop();
}


No hay comentarios:

Publicar un comentario