¿Cómo dibujar un círculo usando lenguaje C?
#include lt; math.hgt;
#include lt; Graphics.hgt /*Función de biblioteca predefinida*/
void CirclePoint(int x, int y) /*Programa de dibujo de círculos de ocho secciones*/
{
circle(320 x*20, 240 y*20, 3);
círculo(320 y*20, 240 x*20, 3
círculo(320-y*20, 240 x*20, 3); > círculo(320- x*20, 240 y*20, 3
círculo(320-x*20, 240 y*20, 3); > círculo(320-x*20, 240-y*20, 3);
círculo(320-y*20, 240-x*20, 3);
círculo(320 y*20, 240-x *20, 3);
círculo(320 x*20, 240-y*20, 3);
void MidBresenhamcircle(int r) /* Programa para dibujar un círculo usando el algoritmo de Bresenham del punto medio*/
{
int x, y, d ; p>
x=0; y=r; d =1-r /* Calcular el valor inicial*/
while(xlt;y)
{ CirclePoint( x, y); /* Dibujar el punto (x, y) y sus otros 7 puntos de simetría en el octante*/
if (dlt; 0) d =2*x 3; A juzgar por el término de error d, determine la dirección de desplazamiento no máxima para ir o no ir*/
else
{ d =2*(x-y) 5;
y--;
}
x;
retraso(900000
} /* mientras); */
}
main ()
{
int i,j,r,graphmode,graphdriver;
detectgraph(amp;graphdriver,amp;graphmode);
initgraph(&graphdriver,&graphmode," ");
printf("Programa para dibujar un círculo con el punto medio del algoritmo Bresenhamcircle \n"); /*Mensaje rápido*/
printf("Nota|r|lt;=11");
printf("\nIngrese el valor del radio r:" );
scanf("d", amp; r);
printf("Presione cualquier tecla para mostrar el gráfico..."); getch();
cleardevice();
p>
setbkcolor(NEGRO)
;
for(i=20; ilt; =620; i =20) /*Utilice la función de punto de bucle doble para dibujar la ordenada en la tabla*/
for(j =20; jlt; =460; j )
putpixel(i,j,2);
para(j=20;jlt;=460;j =20) amp; nBienvenido a Xue.com y agregue este artículo a favoritos [1] [2]
$False$
bsp /*Utilice la función de dibujo de punto de doble bucle para dibujar la abscisa en la tabla. */
for(i=20; ilt; =620; i )
putpixel(i, j, 2);
outtextxy(320, 245); , "0"); /*coordenadas de origen*/
outtextxy(320-5*20, 245, "-5"); Valor de abscisa*/
outtextxy(320 5*20, 245, "5"); círculo(320 5*20, 240, 2
outtextxy(320-10 *); 20, 245, "-10"); círculo(320-10*20, 240, 2);
outtextxy(320 10*20, 245, "10"); , 240, 2);
salidatextxy (320-15*20, 245, "-15"); círculo (320-15*20, 240, 2) (320 15*20, 245, "15"); círculo (320 15*20, 240, 2);
outtextxy (320, 240-5*20, "-5"); 320, 240-5*20, 2); /*valor de ordenada*/
outtextxy(320, 240 5*20, "5");
outtextxy(320, 240-10*20, "-10"); círculo (320, 240-10*20, 2);
outtextxy(320, 240 10*); 20, "10"); círculo(320, 240 10*20, 2);
outtextxy(20, 10, "El centro del círculo es (0, 0) "); solicitar información en la esquina superior izquierda del eje de coordenadas*/
setcolor(RED); /*Marcar el eje de coordenadas*/
line(20, 240, 620, 240) ; outtextxy(320 15*20, 230, "X");
línea(320, 20, 320, 460); > setcolor(AMARILLO);
MidBresenhamcircle(r);
setcolor(AZUL);
(320, 240, r*20);
setcolor(2);
getch();
closegraph(); >}