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;
}
#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
Publicar un comentario