Sei sulla pagina 1di 4

ALGORITMOS DE LA CIRCUNFERENCIA

Circulo punto medio - G2, G5


CIRCULO BRESENHAM - G3, G1
CIRCULO DDA - G4

1.- Ejecutar el algoritmo que le fue asignado


2.- Analizar el algoritmo tabulando con al menos 10 datos
Tabla de anlisis del algoritmo de la circunferencia
N Datos de Entrada Datos procesados Datos de salida
Xc Yc R
1
2

10

3.- Establecer las ventajas y desventajas para cada algoritmo


N Ventajas Desventajas
1
2

4.- Ejercicios prcticos:


4.1.- Rueda - Colocar un pixel de distinto color en los 10 puntos tabulados y trazar una recta
que pase por el centro de la circunferencia de esos 10 puntos
Nota: Las rectas deben dibujarse usando uno de los algoritmos previamente estudiados

4.2.- Usando el algoritmo que le toco dibuje 6 crculos como se muestra en la figura

Los resultados deben ser mostrados con las capturas de pantalla respectivas de la
ejecucin y subir el cdigo respectivo
ALGORITMOS DE LA CIRCUNFERENCIA
simetrico(xc,yc, x, y)
{
putpixel(xc+x,yc+y,5);
putpixel(xc-x,yc+y,5);
putpixel(xc+x,yc-y,5);
putpixel(xc-x,yc-y,5);
putpixel(xc+y,yc+x,5);
putpixel(xc-y,yc+x,5);
putpixel(xc+y,yc-x,5);
putpixel(xc-y,yc-x,5);
}

CIRCULO PUNTO MEDIO


circulo_PUNTO_MEDIO (xc, yc, radio)
{
double x,y,p;
x=0; y=radio;
simetrico(xc,yc,x,y);
p=1-radio;
while(x<y)
{
if(p<0)
x++;
else
{
x+=1;
y-=1;
}
if(p<0)
p=p+2*x+1;
else
p=p+2*(x-y)+1;
simetrico(xc,yc,x,y);
}
}

CIRCULO BRESENHAM
circulo_BRESENHAM (xc, yc, radio)
{
double x,y,e;
x=radio;
y=0;
e=0;
while(y<x)
{
simetrico(xc,yc,x,y);
e=e+2*y+1;
y++;
if((2*e)>(2*x-1))
{
x--;
e=e-2*x+1;
}
}
}

CIRCULO DDA
void circulo_DDA( xc, yc, radio)
{
double x,y,p,rx;
rx=radio;
x=rx;
y=0;
while(y<x)
{
simetrico(xc,yc,x,y);
rx=rx-(y/rx);
x=rx;
y++;
}
}
PD: los grupos que deseen pueden subir la versin mejorada de vuestros informes sobre la recta

Lnea

Tabla de anlisis del algoritmo de la recta (lnea)


Datos procesados
(aqu van todas las variables que usa el Datos de
Datos de Entrada algoritmo en el proceso de dibujar la lnea
Ojo que no todos los algoritmos tienen las salida
N mismas variables )
Punto inicial Punto final Pen ... Punto de dibujo
diente putpixel(X,Y)
X1 X2 Y1 Y2 P Px X Y
1
2

10

Potrebbero piacerti anche