Tarea Texturas | Diana Vargas

//Diana
#include <windows.h>
#include<stdio.h>
#include<stdlib.h>
//#include <GLUT/GLUT.h>
#include <GL/glut.h>
#include <math.h>

int ancho=128,alto=128;
float rotar=0,inc=0.1,rotar1=0;

unsigned char * datos;
unsigned char * datos1;

void leerImagen(){
    FILE *imagen;
    imagen=fopen("C:\\Users\\hp\\Documents\\7 SEMESTRE\\spiderweb.raw","r");//abre el arch
    if(imagen==NULL){printf("Error: No imagen");}
    else{printf("Imagen cargada correctamente");}

    datos=(unsigned char*)malloc(ancho*alto*3);//malloc : localidad de memoria
    fread(datos,ancho*alto*3,1,imagen);
    fclose(imagen);
    }

void usarTextura(){

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos);
}

void leerImagen1(){
    FILE *imagen1;
    imagen1=fopen("C:\\Users\\hp\\Documents\\7 SEMESTRE\\spider.raw","r");//abre el arch
    if(imagen1==NULL){printf("Error: No imagen");}
    else{printf("Imagen cargada correctamente");}

    datos1=(unsigned char*)malloc(ancho*alto*3);//malloc : localidad de memoria
    fread(datos1,ancho*alto*3,1,imagen1);
    fclose(imagen1);
    }

void usarTextura1(){

    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, ancho, alto, 0, GL_RGB, GL_UNSIGNED_BYTE, datos1);
}


void animar(void) {
    rotar=rotar+inc;
    rotar1=rotar1-(6*inc);

    glutPostRedisplay();
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1, 1, 1);

    glPushMatrix();
        leerImagen();
        usarTextura();
        glEnable(GL_TEXTURE_2D);
        glColor3f(1, 1, 1);
        glTranslatef(0.5, 0, 0);
        glRotatef(rotar, 0, 0, 1);
        glTranslatef(-0.5, -0.5, 0);
        glBegin(GL_QUADS);
            glTexCoord2f(1.0, 1.0);glVertex2f(1.0, 0.0);
            glTexCoord2f(0.0, 1.0);glVertex2f(0.0, 0.0);
            glTexCoord2f(0.0, 0.0);glVertex2f(0.0, 1.0);
            glTexCoord2f(1.0, 0.0);glVertex2f(1.0, 1.0);
        glEnd();
    glPopMatrix();

    glPushMatrix();
        leerImagen1();
        usarTextura1();
        glEnable(GL_TEXTURE_2D);
        glColor3f(1,1,1);
        glTranslatef(-0.5,0, 0);
        glRotatef(rotar1, 0, 0, 1);
        glTranslatef(-0.5,-0.5, 0);
        glBegin(GL_QUADS);
            glTexCoord2f(1.0, 1.0);glVertex2f(1.0, 0.0);
            glTexCoord2f(0.0, 1.0);glVertex2f(0.0, 0.0);
            glTexCoord2f(0.0, 0.0);glVertex2f(0.0, 1.0);
            glTexCoord2f(1.0, 0.0);glVertex2f(1.0, 1.0);
        glEnd();
    glPopMatrix();
     glutSwapBuffers();

    /*glPushMatrix();
    glRotatef(ang, 0, 0, 1);
    glTranslatef(-0.5, -0.5, 0);
    glBegin(GL_QUADS);
    glTexCoord2f(1.0, 1.0);glVertex2f(1.0, 0.0);
    glTexCoord2f(0.0, 1.0);glVertex2f(0.0, 0.0);
    glTexCoord2f(0.0, 0.0);glVertex2f(0.0, 1.0);
    glTexCoord2f(1.0, 0.0);glVertex2f(1.0, 1.0);
    glEnd();
    glPopMatrix();*/
    glFlush();
}

void teclado(unsigned char tecla, int x, int y)
{
    switch(tecla){
        case(27):
            exit(0);
        //case ('a'):
        //    ang++;
        //    break;
        //case ('d'):
          //  ang--;
            //break;
        default:
            break;
    }
    glutPostRedisplay();
}

int main(int argc, char **argv){
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB |GLUT_SINGLE);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(10,10);
    glutCreateWindow ("DV");


    glClearColor(1.0,1.0,1.0,0);
    gluOrtho2D(-1.5,1.5,-1.5,1.5);

    //usarTextura();
    glEnable(GL_TEXTURE_2D);


    glutDisplayFunc(display);
    glutKeyboardFunc(teclado);
    glutIdleFunc(animar);
    glutMainLoop();
    return 0;
}





Comentarios

Entradas populares de este blog

Código Capitán América Diana Vargas

Reflejo | Diana Vargas

Cámara | Israel González de la Peña