EXAMEN DE GRAFICACION

11
INSTITUTO TECNOLÓGICO SUPERIOR DE LIBRES Organismo Público Descentralizado del Gobierno del Estado de Puebla ING. EN SISTEMAS COMPUTACIONALES GRAFICACIÓN EJEMPLOS DE 2 POLIGONOS CON LA LIBRERÍA OPENGL EN LA PLATATAFORMA .NET” DOCENTE LIC. DIANA MARICELA GONZÁLEZ DELGADO PRESENTA: HERNÁNDEZ JACINTO MARCO ANTONIO LIBRES, PUEBLA, 17 DE FEBRERO 2012

description

ESTE EL REPORTE DEL EXAMEN DE GRAFICACION CORESPONDIENTE AL PRIMER PARCIAL

Transcript of EXAMEN DE GRAFICACION

Page 1: EXAMEN DE GRAFICACION

INSTITUTO TECNOLÓGICO SUPERIOR DE LIBRES

Organismo Público Descentralizado del Gobierno del Estado de Puebla

ING. EN SISTEMAS COMPUTACIONALES

GRAFICACIÓN

“EJEMPLOS DE 2 POLIGONOS CON LA LIBRERÍA

OPENGL EN LA PLATATAFORMA .NET”

DOCENTE

LIC. DIANA MARICELA GONZÁLEZ DELGADO

PRESENTA:

HERNÁNDEZ JACINTO MARCO ANTONIO

LIBRES, PUEBLA, 17 DE FEBRERO 2012

Page 2: EXAMEN DE GRAFICACION

QUE ES RECURSIVIDAD

La recursividad es un concepto fundamental en matemáticas y en

computación.

Es una alternativa diferente para implementar estructuras de repetición

(ciclos). Los módulos se hacen llamadas recursivas.

Se puede usar en toda situación en la cual la solución pueda ser

expresada como una secuencia de movimientos, pasos o

transformaciones gobernadas por un conjunto de reglas no ambiguas.

Las funciones recursivas se componen de:

Caso base: una solución simple para un caso particular (puede

haber más de un caso base). La secuenciación, iteración

condicional y selección son estructuras válidas de control que

pueden ser consideradas como enunciados.

NOTA: Regla recursiva Las estructuras de control que se pueden formar

combinando de manera válida la secuenciación, iteración condicional y

selección también son válidos.

¿Cuándo usar recursividad?

Para simplificar el código.

Cuando la estructura de datos es recursiva ejemplo : árboles.

¿Cuándo no usar recursividad?

Cuando los métodos usen arreglos largos.

Cuando el método cambia de manera impredecible de campos.

Cuando las iteraciones sean la mejor opción.

Page 3: EXAMEN DE GRAFICACION

CODIGO DEL EXAMEN PRESENTANDO 2 POLIGONOS

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Tao.FreeGlut;

using Tao.OpenGl;

namespace ConsoleApplication1

{

class Program

{

static double x1, y1, x2, y2, x3, y3;

static double x9, y9, x8, y8, x7, y7,x6,y6,x5,y5;

static void Main(string[] args)

{

//INSERCION DELOS VLORES PARA EL TRUANGULO

Console.WriteLine("................PRIMER EXAMEN PARCIAL

DE GRAFICACION................");

Console.WriteLine("................EL

TRIANGULO................");

Console.WriteLine("INSERTE EL VALOR DE X1");

x1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DEe Y1");

y1 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X2");

x2 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y2");

y2 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X3");

x3 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y3");

y3 = Convert.ToDouble(Console.ReadLine());

//---INSERCION DE VALORES PARA EL PENTAGONO---------------

----------

Console.WriteLine("..................EL

PÈNTAGONO.............");

Console.WriteLine("INSERTE EL VALOR DE X1");

x9 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y1");

y9 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X2");

x8 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y2");

y8 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X3");

x7 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y3");

y7 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X4");

x6 = Convert.ToDouble(Console.ReadLine());

Page 4: EXAMEN DE GRAFICACION

Console.WriteLine("INSERTE EL VALOR DE Y4");

y6 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE X5");

x5 = Convert.ToDouble(Console.ReadLine());

Console.WriteLine("INSERTE EL VALOR DE Y5");

y5 = Convert.ToDouble(Console.ReadLine());

Glut.glutInit();//funciones propias de opengl

Glut.glutInitDisplayMode(Glut.GLUT_SINGLE |

Glut.GLUT_RGB);

Glut.glutInitWindowSize(660, 500);//creamos una ventana

Glut.glutCreateWindow("...............EXAMEN DE

GRAFICACION ............ ");//colocamos titulo a la ventana

//llamamos a la funcion dda

Glut.glutDisplayFunc(dda);

Glut.glutMainLoop();

}

public static void dda()

{

//componentes necesarios de opengl

Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);//limpia el buffer de

la pantall

Gl.glColor3f(0.0F, 0.0F, 1.0F);//poner color a los pixeles

Gl.glLoadIdentity();//''muy importante;

Gl.glPointSize(6.0f);//medida de los puntos

Gl.glBegin(Gl.GL_POINTS);//funcion para dibujar puntos

//dibujando el plano

float z = -1, w = 1, c = 1;

for (int i = 0; i < 200; i++)

{

Gl.glColor3f(w, c, z);

Gl.glVertex2d(z, 0);

Gl.glVertex2d(0, w);

z += .01f;

w -= .01f;

c += .1f;

}

Gl.glEnd();//termina funcion para dibujar puntos

///pasamos las

Gl.glPointSize(6.0f);//sirve para el tamaño de los pixeles

Gl.glColor3f(0.0F, 0.0F, 1.0F);//poner color a los pixeles

//DIBUJAR EL TRIANGULO ddaDibujar(x1, y1, x2, y2);

ddaDibujar1(x2, y2, x3, y3);

ddaDibujar2(x3, y3, x1, y1);

//---------------------------------------------

-------------------

//DIBUJAR EL PENTAGONO

ddaDibujar3(x9, y9, x8, y8);

ddaDibujar4(x8, y8, x7, y7);

ddaDibujar5(x7, y7, x6, y6);

ddaDibujar6(x6, y6, x5, y5);

ddaDibujar7(x5, y5, x9, y9);

Page 5: EXAMEN DE GRAFICACION

}

public static void ddaDibujar(double x1, double y1, double x2,

double y2)

{

double xinicial = x1, yinicial = y1, xfinal = x2, yfinal =

y2, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

public static void ddaDibujar1(double x2, double y2, double

x3, double y3)

{

double xinicial = x2, yinicial = y2, xfinal = x3, yfinal =

y3, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Page 6: EXAMEN DE GRAFICACION

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

public static void ddaDibujar2(double x3, double y3, double x1,

double y1)

{

double xinicial = x3, yinicial = y3, xfinal = x1, yfinal =

y1, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

//APARTIR DE AKA ES EL PENTAGONO

//--------------------------------------

public static void ddaDibujar3(double x9, double y9, double x8,

double y8)

{

double xinicial = x9, yinicial = y9, xfinal = x8, yfinal =

y8, x, y;

double deltax, deltay, xincremento, yincremento;

Page 7: EXAMEN DE GRAFICACION

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

public static void ddaDibujar4(double x8, double y8, double x7,

double y7)

{

double xinicial = x8, yinicial = y8, xfinal = x7, yfinal =

y7, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

Page 8: EXAMEN DE GRAFICACION

}

public static void ddaDibujar5(double x7, double y7, double x6,

double y6)

{

double xinicial = x7, yinicial = y7, xfinal = x6, yfinal =

y6, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

public static void ddaDibujar6(double x6, double y6, double x5,

double y5)

{

double xinicial = x6, yinicial = y6, xfinal = x5, yfinal =

y5, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

Page 9: EXAMEN DE GRAFICACION

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

public static void ddaDibujar7(double x5, double y5, double x9,

double y9)

{

double xinicial = x5, yinicial = y5, xfinal = x9, yfinal =

y9, x, y;

double deltax, deltay, xincremento, yincremento;

double pasos;

deltax = xfinal - xinicial;

deltay = yfinal - yinicial;

if (Math.Abs(deltax) > Math.Abs(deltay))

pasos = Math.Abs(deltax);

else

pasos = Math.Abs(deltay);

xincremento = (deltax / pasos) / 10;

yincremento = (deltay / pasos) / 10;

x = xinicial;

y = yinicial;

Gl.glBegin(Gl.GL_POINTS);

Gl.glVertex2d(x, y);//funcion que pinta un pixel en las

coordenadas especificadas

for (double k = .11; k <= pasos; k += .11)

{

x = (x + xincremento);

y = (y + yincremento);

Gl.glVertex2d(x, y);

}

Gl.glEnd();

//termina dda

}

}

}

Page 10: EXAMEN DE GRAFICACION

EJEMPLO EJECUTADO

Page 11: EXAMEN DE GRAFICACION

Fuentes de información

DEFINICIÓN DE RECURSIVIDAD

1.- http://ocw.udem.edu.mx/cursos-de...de...recursividad/Recursividad.ppt