Write a c program to implement mid-point circle drawing algorithm.
The Mid-Point Circle Drawing Algorithm is an efficient algorithm used to draw a circle in computer graphics. It is based on the concept of decision parameters to determine the next pixel to plot. Below is a C program that implements the Mid-Point Circle Drawing Algorithm:
#include <stdio.h> #include <graphics.h> // Function to implement Mid-Point Circle Drawing Algorithm void drawCircle(int xc, int yc, int radius) { int x = 0; int y = radius; int p = 1 - radius; // Initial decision parameter // Plot the initial points putpixel(xc + x, yc + y, WHITE); putpixel(xc - x, yc + y, WHITE); putpixel(xc + x, yc - y, WHITE); putpixel(xc - x, yc - y, WHITE); putpixel(xc + y, yc + x, WHITE); putpixel(xc - y, yc + x, WHITE); putpixel(xc + y, yc - x, WHITE); putpixel(xc - y, yc - x, WHITE); // Loop to plot the circle while (x < y) { x++; if (p < 0) { p = p + 2 * x + 1; } else { y--; p = p + 2 * (x - y) + 1; } // Plot the symmetric points putpixel(xc + x, yc + y, WHITE); putpixel(xc - x, yc + y, WHITE); putpixel(xc + x, yc - y, WHITE); putpixel(xc - x, yc - y, WHITE); putpixel(xc + y, yc + x, WHITE); putpixel(xc - y, yc + x, WHITE); putpixel(xc + y, yc - x, WHITE); putpixel(xc - y, yc - x, WHITE); } } int main() { int gd = DETECT, gm; int xc, yc, radius; // Initialize graphics mode initgraph(&gd, &gm, NULL); // Input center and radius of the circle printf("Enter the center coordinates of the circle (xc yc): "); scanf("%d %d", &xc, &yc); printf("Enter the radius of the circle: "); scanf("%d", &radius); // Draw the circle using Mid-Point Circle Drawing Algorithm drawCircle(xc, yc, radius); // Wait for a key press getch(); // Close the graphics mode closegraph(); return 0; }