Programa en C para dibujar círculos usando el método de Bresenham
int Bres(int x0,int y0,doble r,int color)
{
int x,y,d
x=0;
y=(int)r;
d=(int)(3-2*r); y)
{
cirpot(x0,y0,x,y,color
if(d<0)
; d+=4*x+6;
else
{
d+=4*(x-y)+10; -;
}
x++;
}
if(x==y)
cirpot( x0,y0,x,y,color);
return(0);
}
int cirpot(int x0,int y0,int x, int y,int color)
{
setcolor(color
putxicl((xx),(yy)); p>
setcolor(color);
putxicl((xx),(yy));
p>
putxicl((xy)); ),(yx));
putxicl((xy),(y0-x));
putxicl ((xx),(y0-y) ));
putxicl((x0-x),(y0-y));
putxicl((x0-y) ,(y0-x)); >
putxicl((x0-y),(yx));
putxicl((x0-x),(yy)
setcolor( color);
return(0);
}
Este es el algoritmo del círculo, si quieres para el programa completo, dame tu correo y yo. se lo enviará
El entorno de ejecución es Turboc 2.0
int Bresline(int x1,inty1,int x2,int y2,int color)
. {
int color,itag;
int dx,dy,tx,ty,inc1,inc2,d,curx,cury; ,tx,ty,inc1,inc2,d,curx,cury;
int color,itag; p>
setcolor(color);
putxicl(x1,y1)
if(x1==x2&&y1==y2)
{
setcolor(color);
}
itag=0;
dx =abs(x2-x1);
dy=abs(y2-y1);
if(dx { itag=1;] iswap(&x1,&y1); p> iswap(&x2,&y2); iswap(&dx,&dy); } tx=(x2-x1)>0 ? 1:-1; ty=(y2-y1)>0? 1:-1 curx=x1; inc1=2*dy; inc2=2*(dy-dx); d=inc1-dx; mientras (curx!x2) { if(d<0) { d+=inc1; p>} else { cury+=ty d+=inc2 } if(itag) setpixel(cury,curx);