martes, 30 de agosto de 2016

Tarea 5.- Textos Rotados David Gómez Jaramillo

Alumno: David Gómez Jaramillo

Capturas de Pantalla

 
Texto Posición original

Texto Rotado

CÓDIGO:

/**
Programa que hace rotar 2 textos:
Uno sobre su propio eje y en sentido contrario de las manecillas del reloj
y el otro alrededor
Utilizando el botón izquierdo el texto gira a la izquierda
Utilizando el botón derecho el texto gira a la derecha
David Gomez Jaramillo
*/
#include <windows.h>
#include <gl/glut.h>
#include <string.h>
#define WIDTH 700
#define HEIGHT 700
#define TEXTO  "David Gomez"
float rotacion=0;
int x=400, y=400;

void drawText(char *str)//
{
    int i;
    int len=strlen(str);
    glRasterPos2f(x,y);
    glColor3f(1,0,0.1);
    for(i=0;i<len;i++){
        glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24,str[i]);
        glutStrokeCharacter(GLUT_STROKE_ROMAN,str[i]);
}
}

void display()
{
      glClear( GL_COLOR_BUFFER_BIT);
      glMatrixMode(GL_MODELVIEW);
      glLoadIdentity();
      glScalef(0.001, 0.001, 0.001);
      glRotatef(rotacion, 0, 0, 1.0);
      drawText(TEXTO);
      glutSwapBuffers();
      glFlush();
}

void mouse(int boton, int grado, int x, int y)
{
    if (boton==GLUT_LEFT_BUTTON && grado == GLUT_DOWN)
    {
     rotacion += 45.0;
    }
    if (boton==GLUT_MIDDLE_BUTTON && grado == GLUT_DOWN)
    {
     rotacion = 0.0;
    }
    if (boton==GLUT_RIGHT_BUTTON && grado == GLUT_DOWN)
    {
     rotacion -= 45.0;
    }

    glutPostRedisplay();
}

void init()
{
    glClearColor( 1.0, 1.0, 1.0, 1.0);
    glColor3f(1.0,0.0,0.0);
}

void ajustarViewPort(int ancho,int alto)
{
     float aspect_ratio;
     aspect_ratio=1;
     if(1>(ancho/alto))
     {
      glViewport(0,0,ancho,ancho/aspect_ratio);
     }
     else{
      glViewport(0,0,alto*aspect_ratio,alto);
     }
}

int main( int argc, char ** argv)
{
    glutInit( &argc, argv);
    glutInitDisplayMode( GLUT_DOUBLE| GLUT_RGB);
    glutInitWindowPosition( 300, 100);
    glutInitWindowSize(WIDTH,HEIGHT);
    glutCreateWindow( "Rotacion de 2 Textos");
    glutReshapeFunc(ajustarViewPort);
    init();
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
    return 0;
}

Descargar:




No hay comentarios:

Publicar un comentario