Actividad de Examen
-
Upload
edgar-larios -
Category
Documents
-
view
219 -
download
0
description
Transcript of Actividad de Examen
![Page 1: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/1.jpg)
S.E.P. D.G.E.S.T. D.I.T.D.
INSTITUTO TECNOLÓGICO SUPERIOR DE LIBRES Organismo Público Descentralizado del Gobierno del Estado de Puebla
INGENIERÍA EN SISTEMAS COMPUTACIONALES
“GRAFICACIÓN”
EXAMEN
PRESENTA:
LARIOS VÁZQUEZ EDGAR
LIBRES, PUEBLA, FEBRERO DE 2012.
![Page 2: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/2.jpg)
CONCEPTO DE RECURSIVIDAD [1]
La recursividad es una técnica de diseño de algoritmos que se basa en
solucionar versiones más pequeñas de un problema para de esta manera se
pueda encontrar la solución general. Existen dos tipos de algoritmos recursivos:
recursión directa y recursión indirecta.
Esta actividad fue realizada en la plataforma libre MonoDevelop de Ubuntu por
lo cual no se encontró la correcta ubicación de las coordenadas.
![Page 3: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/3.jpg)
using System;
using Tao.FreeGlut;
using Tao.OpenGl;
namespace EXAMEN
{
class Program
{
static double x1, y1, x2, y2, x3, y3;
static double x4, y4, x5, y5, x6, y6,x7,y7,x8,y8;
static void Main(string[] args)
{
Console.WriteLine("INTRODUZCA LOS VALORES PARA PINTAR EL
TRIANGULO");
Console.WriteLine("introduzca el valor de X1");
x1 = Convert.ToDouble(Console.ReadLine());
![Page 4: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/4.jpg)
Console.WriteLine("introduzca el valor de Y1");
y1 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X2");
x2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y2");
y2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X3");
x3 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y3");
y3 = Convert.ToDouble(Console.ReadLine());
//pidiendo valores para el poligono
Console.WriteLine("INTRODUZCA LOS VALORES PARA EL
POLIGONO");
Console.WriteLine("introduzca el valor de X1");
x4 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y1");
y4 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X2");
x5 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y2");
y5 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X3");
x6 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y3");
y6 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X4");
x7 = Convert.ToDouble(Console.ReadLine());
![Page 5: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/5.jpg)
Console.WriteLine("introduzca el valor de Y4");
y7 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de X5");
x8 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("introduzca el valor de Y5");
y8 = Convert.ToDouble(Console.ReadLine());
Glut.glutInit();//funciones propias de opengl
Glut.glutInitDisplayMode(Glut.GLUT_SINGLE | Glut.GLUT_RGB);
Glut.glutInitWindowSize(840, 680);//creamos una ventana
Glut.glutCreateWindow("**************Algoritmo
DDA**************");//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 pantalla
Gl.glColor3f(0.6F, 0.6F, 0.6F);//poner color a los pixeles
Gl.glLoadIdentity();//''muy importante;
Gl.glPointSize(4.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++)
![Page 6: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/6.jpg)
{
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(9.0f);//sirve para el tamaño de los pixeles
Gl.glColor3f(0.6f, 1.0f, 0.6f);//sirve para el color de los pixeles
//para dibujar el triangulo
ddaDibujar(x1, y1, x2, y2);
ddaDibujar(x2, y2, x3, y3);
ddaDibujar(x3, y3, x1, y1);
//para dibujar el poligono
ddaDibujar(x4, y4, x5, y5);
ddaDibujar(x5, y5, x6, y6);
ddaDibujar(x6, y6, x7, y7);
ddaDibujar(x7, y7, x8, y8);
ddaDibujar(x8, y8, x4, y4);
}
public static void ddaDibujar(double x1, double y1, double x2, double y2)
{
![Page 7: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/7.jpg)
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();
![Page 8: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/8.jpg)
//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);
Gl.glVertex2d(x, y);//funcion que pinta un pixel en las coordenadas
especificadas
![Page 9: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/9.jpg)
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);
![Page 10: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/10.jpg)
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
}
//pintar poligono
public static void ddaDibujar3(double x4, double y4, double x5, double y5)
{
double xinicial = x4, yinicial = y4, xfinal = x5, yfinal = y5, x, y;
double deltax, deltay, xincremento, yincremento;
![Page 11: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/11.jpg)
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 12: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/12.jpg)
}
public static void ddaDibujar4(double x5, double y5, double x6, double y6)
{
double xinicial = x5, yinicial = y5, 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);
![Page 13: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/13.jpg)
y = (y + yincremento);
Gl.glVertex2d(x, y);
}
Gl.glEnd();
//termina dda
}
public static void ddaDibujar5(double x6, double y6, double x7, double y7)
{
double xinicial = x6, yinicial = y6, 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);
![Page 14: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/14.jpg)
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 x7, double y7, double x8, double y8)
{
double xinicial = x7, yinicial = y7, xfinal = x8, yfinal = y8, 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;
![Page 15: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/15.jpg)
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 ddaDibujar7(double x8, double y8, double x4, double y4)
{
double xinicial = x8, yinicial = y8, xfinal = x4, yfinal = y4, x, y;
double deltax, deltay, xincremento, yincremento;
double pasos;
deltax = xfinal - xinicial;
deltay = yfinal - yinicial;
![Page 16: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/16.jpg)
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 17: Actividad de Examen](https://reader030.fdocumento.com/reader030/viewer/2022020419/568bd9d21a28ab2034a876a4/html5/thumbnails/17.jpg)
Fuente de información
http://www.infor.uva.es/~belar/Ampliacion/Curso%202008_2009/T2_Programac
ion_Recursiva.pdf [1]