Draw Midpoint Circle Algorithm with Keyboard Function

Code:

```#include <windows.h>
#include <GL\glut.h>
#include <stdlib.h>
#include<iostream>
#include<stdio.h>
using namespace std;

int r,p,flags=0;

void myInit (void)

{

glClearColor(0.0,0.0,0.0,0.0); // sets background color to white

// sets a point to be 4x4 pixels

glMatrixMode(GL_PROJECTION);

gluOrtho2D(0.0, 500.0, 0.0, 400.0); // the display area in world coordinates.

}
void midpoint()
{
r=20;
p=1-r;
int xk=0;
int yk=r;
int xc=200;
int yc=200;
while(xk<=yk)
{
if(p<0)
{
xk++;
p=p+2*xk+3;
}
else if(p>0)
{
xk++;
yk=yk-1;
p=p+2*xk-2*yk+5;
}
glVertex2i(xc+xk,yc+yk);
glVertex2i(xc-xk,yc+yk);
glVertex2i(xc+xk,yc-yk);
glVertex2i(xc-xk,yc-yk);
glVertex2i(xc+yk,yc+xk);
glVertex2i(xc-yk,yc+xk);
glVertex2i(xc+yk,yc-xk);
glVertex2i(xc-yk,yc-xk);
}

}

void processKey(unsigned char key, int x, int y)
{
switch(key){
case '1':
flags=1;
printf("Hello world!");
break;

//default:
// break;
}
}

void myDisplay(void)
{
//int nol = rand() % 100;

glClear(GL_COLOR_BUFFER_BIT); // clears the screen
// setsthe drawing colour

glPointSize(4.0);

glColor3f(1.0f,0.0f,1.0f) ;
glBegin(GL_LINES);

glVertex2i(0,200);
glVertex2i(500,200);

glVertex2i(255,0);
glVertex2i(255,500);

glEnd();

glBegin(GL_POINTS);
//midpoint();
if(flags==1){
midpoint();
}

glEnd();

glFlush(); // sends all output to display;

}

int main (int argc, char **argv)
{

//scanf("%d,%d,&d,&d",&x,&y,&a,&b);
glutInit (&argc, argv); // to initialize the toolkit;

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // sets the display mode

glutInitWindowSize (640, 480); // sets the window size

glutInitWindowPosition (10, 10); // sets the starting position for the window

glutCreateWindow ("My first OpenGL program!"); // creates the window and sets the title
glutKeyboardFunc(processKey);
glutDisplayFunc (myDisplay);
myInit(); // additional initializations as necessary

glutMainLoop(); // go into a loop until event occurs
return 0;
}```

It would be a great help, if you support by sharing :)
Author: zakilive