miércoles, 7 de septiembre de 2016

Cronograma Primer Proyecto

Cronograma:
Juego “Duck Hunt” del 6/Septiembre/2016 al 04/Octubre/2016

Actividad
Responsable
Fecha Inicio
Fecha Final
Generar las Texturas del Escenario Principal
Daniel
6/9/16
13/9/16
Generar los movimientos aleatorios de objetivos (patos)
David
6/9/16
15/9/16
Seguimiento de Escopeta conforme al movimiento de cursor
Juan
6/9/16
13/9/16
Generar boton de salto para iniciar juego
Ivan
6/9/16
13/9/16
Identificar las colisiones, entre cursor y objetivos (patos y balas)
Ricardo
6/9/16
20/9/16
Generar animación de entrada de compañero de caza (perro)
Ivan
13/9/16
20/9/16
Generar Textura de objetivos (patos)
David
10/9/16
20/9/16
Generar Scores y contador de balas
Ricardo
10/9/16
20/9/16
Recopilación de módulos en aplicación y generación de la misma
Ricardo, David, Juan, Ivan, Daniel
20/9/16
30/9/16
Documentación
Ricardo, David, Juan, Ivan, Daniel
20/9/16
04/10/19
Pruebas de Uso
Ricardo, David, Juan, Ivan, Daniel
30/9/16
01/10/16


Equipo:
  • David Gómez Jaramillo
  • Ricardo Daniel González Gómez
  • Héctor Daniel Garnica Ayala
  • Juan García García
  • Iván Chávez Gutiérrez

martes, 6 de septiembre de 2016




/*
 ** ELABORADO POR:
    -Ricardo
    -Daniel
    -David Gómez Jaramillo
    -Juan García García
    -Iván Chavez Gutierrez
 ** Tarea ventilador
 */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <GLut/glut.h>

float cx=250,cy=250,radio=150;
float nx,ny,r,g,dx,dy,pi=3.141592653;

int puntos=0, ancho=700,alto=700,tam_px=10;
int px,py,lados=360;

float a=0, b=0.02;
int bandera = 1;


void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    //glEnable(GL_POINT_SMOOTH);
    
    //Dibujar circulo
    glBegin(GL_POLYGON);
    glColor3f(1,1,1);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=radio*cos(i)+(ancho/2);
        dy=radio*sin(i)+(alto/2);
        glVertex2f(dx, dy);
    }
    glEnd();
    
    //Dibujar centro de aspas RGB(113, 113, 114)
    glBegin(GL_POLYGON);
    glColor3f(0.7,0.7,0.7);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=25*cos(i)+(ancho/2);
        dy=25*sin(i)+(alto/2);
        glVertex2f(dx, dy);
    }
    glEnd();
    
    glMatrixMode(GL_MODELVIEW);
    glRotatef(1,0,0,1); //para que se mantengan rotando las aspas
    
    glPushMatrix();
    //glTranslatef(0,2,0); //trasladar aspa
    glRotatef(-60,0,0,1);
    //Dibujar aspa superior
    glBegin(GL_POLYGON);
    glColor3f(0.5,0.5,0.5);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=25*cos(i)+(ancho/2);
        dy=60*sin(i)+((alto/2)+85);
        glVertex2f(dx, dy);
    }
    glEnd();
    glPopMatrix();
    
    glPushMatrix();
    //glTranslatef(0,2,0); //trasladar aspa
    glRotatef(-60,0,0,1);
    //Dibujar aspa derecha
    glBegin(GL_POLYGON);
    glColor3f(0.5,0.5,0.5);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=60*cos(i)+((ancho/2)+85);
        dy=25*sin(i)+(alto/2);
        glVertex2f(dx, dy);
    }
    glEnd();
    glPopMatrix();
    
    glPushMatrix();
    glTranslatef(0,2,0); //trasladar aspa
    //glRotatef(-60,0,0,1);
    //Dibujar aspa inferior
    glBegin(GL_POLYGON);
    glColor3f(0.5,0.5,0.5);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=25*cos(i)+(ancho/2);
        dy=60*sin(i)+((alto/2)-85);
        glVertex2f(dx, dy);
    }
    glEnd();
    glPopMatrix();
    
    glPushMatrix();
    //glTranslatef(0,2,0); //trasladar aspa
    glRotatef(-60,0,0,1);
    //Dibujar aspa izquierda
    glBegin(GL_POLYGON);
    glColor3f(0.5,0.5,0.5);
    glBegin(GL_QUADS);
    for (float i=0.0; i<2*pi; i+=pi/lados)//0.01
    {
        dx=60*cos(i)+((ancho/2)-85);
        dy=25*sin(i)+(alto/2);
        glVertex2f(dx, dy);
    }
    glEnd();
    glPopMatrix();


    //glFlush();
    glutSwapBuffers();
    if (bandera==1){
        a=a-b;
    }

    
}

void key(unsigned char c, int x, int y)
{
    switch(c){
        case(27):
            exit(0);
        case('a'): //apagar ventilador
            bandera = 0;
            break;
        case('p'): //prender ventilador
            bandera = 1;
            break;
        case('+'): //aumentar velocidad
            b=b+0.02;
            break;
        case('-'): //disminuir velocidad
            if(b!=0){
                b=b-0.02;
            }
            break;
        default:
            break;
            
    }
    glutPostRedisplay();
    
}

void Init()
{
    glClearColor(0.92,0.93,0.93, 1.0);
    gluOrtho2D(0,ancho,0,alto);
}

int main(int argc, char **argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowPosition(100,100);
    glutInitWindowSize(ancho,alto);
    glutCreateWindow("Ventilador");
    
    Init();
    
    glutDisplayFunc(display);
    glutKeyboardFunc(key);
    
    glutMainLoop();
    return 0;
}





#include <stdio.h>
#include <math.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <windows.h>
#include <GL/glut.h>
#endif
#include <stdlib.h>
//Medidas de la imagen
int ancho=128,alto=128, ang, angx, lados=3;

unsigned char * datos;

int leerImagen(){
    FILE *imagen;
    imagen=fopen("/Users/Juan/Desktop/BOY.RAW","r");
    datos=(unsigned char*)malloc(ancho*alto*3);
    if(imagen==NULL){
        printf("Error: No imagen");
        return 0;
    }else{printf("OK: Imagen cargada correctamente");}
    
    fread(datos,ancho*alto*3,1,imagen);

    fclose(imagen);
    return 1;
    }
void teclado(unsigned char tecla, int x, int y)
{
    glClear(GL_COLOR_BUFFER_BIT);
    switch(tecla){
    case(27):
        exit(0);
    case('1'):
        ang+=3;break;
    case('2'):
        ang+=-3;break;
    case('3'):
        lados++;break;
    case('4'):
        if(lados>3){lados--;}
        break;
    case('5'):
        angx+=3;
        break;
    case('6'):
        angx+=-3;
        break;
    default:
        glutPostRedisplay();
            break;
}
    glutPostRedisplay();
}


void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(ang, 0, 0, 1);
    glRotatef(angx, 0, 1, 0);
    glBegin(GL_TRIANGLE_FAN);
    float ang, x, y;
    for(int i=0; i<=lados; i++){
        ang =i*2*3.141592653/lados;
        y=cos(ang)+1.5;
        x=sin(ang)+1.5;
        glTexCoord2d(x,y);glVertex2f(x,y);
    }
    /*
    glTexCoord2f(0.0, 1.7);glVertex2f(-2.0, -2.0);
    glTexCoord2f(1.7, 1.7);glVertex2f(2.0, -2.0);
    glTexCoord2f(1.2, 0.0);glVertex2f(0.0, 2.0);*/
    glEnd();
    glPopMatrix();
    glFlush();
}

void usarTexturas(){
    leerImagen();
    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);
    glEnable(GL_TEXTURE_2D);
}


void Init(){
    glClearColor(0.0,0.0,0.0,0);
    gluOrtho2D(0,2.5,0,2.5);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    usarTexturas();
}

int main(int argc, char **argv){
    glutInit(&argc, argv);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(10,10);
    glutCreateWindow ("Textura Sintética");
    Init();
    glutDisplayFunc(display);
    glutKeyboardFunc(teclado);
    glutMainLoop();
    return 0;
}

Jueguito

Dar clic para ver presentación

lunes, 5 de septiembre de 2016


Textura Sintética

Garnica Ayala Héctor Daniel



/**
Garnica Ayala Héctor Daniel
Tectura Sintética
Programa: muestra el uso de una textura sintética sobre una imagen .raw
 controles:
  1 rota hacia la izquierda
  2 rota hacia la derecha
  3 aumenta el numero de lados
  4 reduce el numero de lados
  5 rota sobre el eje x positivo
  6 rota sobre el eje x negativo

**/
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#include "GL/GLUT.h"
#include "math.h"


int ancho=720,alto=780,ang=0,angz=0,lados=3;

unsigned char * datos;
/************LEER LA IMAGEN********/
int leerImagen()
{
    FILE *imagen;
    imagen=fopen("C:/Users/host/Documents/PROG_Graficacion/TexturaSintetica/m.raw","r");
    datos=(unsigned char*)malloc(ancho*alto*3);
    if(imagen==NULL)
    {
        printf("Error: No imagen");
        return 0;
    }
    else
    {
        printf("OK: Imagen cargada correctamente");
    }
    fread(datos,ancho*alto*3,1,imagen);
    fclose(imagen);
    return 1;
}
/*****OPCIONES DE TECLADO***/
void teclado(unsigned char tecla, int x, int y)
{
    switch(tecla)
    {
    case(27):
        exit(0);
    case('1'):// girar hacia la izquierda
        ang=ang+3;
        break;
    case('2')://girar hacia la derecha
        ang=ang-3;
        break;
 case ('3')://aumenta el numero de lados
  lados=lados+1;
  break;
    case ('4')://reduce elnumero de lados
  lados=lados-1;
        break;
 case ('5')://rota en x +
  angz=angz+1;
  break;
    case ('6')://rota en x -
  angz=angz-1;
  break;
    default:
        glutPostRedisplay();
        break;
    }
    glutPostRedisplay();
}


void display(void)
{

    glClear(GL_COLOR_BUFFER_BIT);
  glPushMatrix();
   glRotatef(ang, 0, 0, 1);
   glRotatef(angz,1,0,0);//inclina la figura
   glBegin(GL_TRIANGLE_FAN);
   float ang,x,y;
    for(int i=0;i<=lados;i++){
     ang=i*2*3.141592653/lados;
     x=cos(ang)+1.5;
     y=sin(ang)+1.5;
     glTexCoord2f(x, y);
      glVertex2f(x, y);
    }
   glEnd();
  glPopMatrix();
    glFlush();
}

void usarTexturas()
{
    leerImagen();
    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);
    glEnable(GL_TEXTURE_2D);
}


void Init()
{
    glClearColor(0.0,0.0,0.0,0);
    gluOrtho2D(-2.5,2.5,-2.5,2.5);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    usarTexturas();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(10,10);
    glutCreateWindow ("Textura Sintética");
    Init();
    glutDisplayFunc(display);
    glutKeyboardFunc(teclado);
    glutMainLoop();
    return 0;
}
Descargar Archivo.txt
TexturaSintetica.txt

Tarea 6 - Texturas - David Gómez Jaramllo

David Gómez Jaramillo

Capturas de Pantalla:

 

Imagen RAW usada:

Código:

#include <stdio.h>
#include <math.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <windows.h>
#include <GL/glut.h>
#endif
#include <stdlib.h>
//Medidas de la imagen!!!!!!!!!!!!!
int ancho=128,alto=128, ang, angx, lados=3;
unsigned char * datos;
int leerImagen(){
    FILE *imagen;
    imagen=fopen("C:/ImagenesC/dino.raw","r");
    datos=(unsigned char*)malloc(ancho*alto*3);//asigna espacio de memoria para guardar imagen
    if(imagen==NULL){
        printf("Error: No imagen");
        return 0;
    }else{printf("OK: Imagen cargada correctamente");}
    //asignamos el archivo de la imagen para la memoria guardada
    fread(datos,ancho*alto*3,1,imagen);
    fclose(imagen);
    return 1;
    }
void teclado(unsigned char tecla, int x, int y)
{
    glClear(GL_COLOR_BUFFER_BIT);
    switch(tecla){
    case(27):
        exit(0);
    case('1'):
        ang+=3;break;
    case('2'):
        ang+=-3;break;
    case('3'):
        lados++;break;
    case('4'):
        if(lados>3){lados--;}
        break;
    case('5'):
        angx+=3;
        break;
    case('6'):
        angx+=-3;
        break;
    default:
        glutPostRedisplay();
            break;
}
    glutPostRedisplay();
}

void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(ang, 0, 0, 1);
    glRotatef(angx, 1, 0, 1);
    glBegin(GL_TRIANGLE_FAN);
    float ang, x, y;
    for(int i=0; i<=lados; i++){
        ang =i*2*3.141592653/lados;
        y=cos(ang)+1.5;
        x=sin(ang)+1.5;
        glTexCoord2d(x,y);glVertex2f(x,y);
    }
    /*
    glTexCoord2f(0.0, 1.7);glVertex2f(-2.0, -2.0);
    glTexCoord2f(1.7, 1.7);glVertex2f(2.0, -2.0);
    glTexCoord2f(1.2, 0.0);glVertex2f(0.0, 2.0);*/
    glEnd();
    glPopMatrix();
    glFlush();
}
void usarTexturas(){
    leerImagen();
    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);
    glEnable(GL_TEXTURE_2D);
}

void Init(){
    glClearColor(0.0,0.0,0.0,0);
    gluOrtho2D(0,2.5,0,2.5);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    usarTexturas();
}
int main(int argc, char **argv){
    glutInit(&argc, argv);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(10,10);
    glutCreateWindow ("Textura Sintética");
    Init();
    glutDisplayFunc(display);
    glutKeyboardFunc(teclado);
    glutMainLoop();
    return 0;
}

Descargas:

Descargar codigoDescargar imagen RAW


Texturas ejercicio

Por:Ricardo Daniel Gonzalez Gomez
Captura de pantalla

Código
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>
#define PI 3.141592653

int ancho=128,alto=128, lados = 3;
float angX = 0, ang = 0;

unsigned char * datos;

int leerImagen(){
    FILE *imagen;
    imagen=fopen("/home/ricardo/Documentos/UAEMex/Graficacion/cla07/boy.raw","r");
    datos = (unsigned char*)malloc(ancho*alto*3);
    if(imagen==NULL){
        printf("Error: No imagen");
        return 0;
    }else{printf("OK: Imagen cargada correctamente\n");}
    fread(datos,ancho*alto*3,1,imagen);
    fclose(imagen);
    return 1;
    }
void teclado(unsigned char tecla, int x, int y)
{
    switch(tecla){
        case(27):
            exit(0);
        case('1')://girar izq
            ang -= 5;
            break;
        case('2')://girar der
            ang += 5;
            break;
        case('3')://menos lados
            if(lados > 3){
                lados -= 1;
            }
            break;
        case('4')://mas lados
            lados += 1;
            break;
        case('5')://rotar en X posi
            angX -= 5;
            break;
        case('6')://rotar en X posi
            angX += 5;
            break;                                                
        default:
            glutPostRedisplay();    break;
    }
    glutPostRedisplay();
}


void display(void){
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
        glRotatef(ang, 0, 0, 1);
        glRotatef(angX, 1, 0, 0);
        glBegin(GL_TRIANGLE_FAN);
            float teta, x, y;
            for (int i = 0; i < lados; ++i){
                teta =  (i * PI * 2) / lados;
                x = 2 * cos(teta) ;
                y = 2 * sin(teta) ;
                glTexCoord2f(x, y);glVertex2f(x, y);
            }
            //glTexCoord2f(0.0, 1.0);glVertex2f(-2.0, -2.0);
            //glTexCoord2f(1.0, 1.0);glVertex2f(2.0, -2.0);
            //glTexCoord2f(0.5, 0.0);glVertex2f(0.0, 2.0);

        glEnd();
    glPopMatrix();
    glFlush();
}

void usarTexturas(){
    leerImagen();
    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);
    glEnable(GL_TEXTURE_2D);
}


void Init(){
    glClearColor(0.0,0.0,0.0,0);
    gluOrtho2D(-2.5,2.5,-2.5,2.5);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    usarTexturas();
}

int main(int argc, char **argv){
    glutInit(&argc, argv);
    glutInitWindowSize(600,600);
    glutInitWindowPosition(10,10);
    glutCreateWindow ("Textura Sintética");
    Init();
    glutDisplayFunc(display);
    glutKeyboardFunc(teclado);
    glutMainLoop();
    return 0;

}
Descargar código
Descargar imagen