paint project plz help

#include<iostream.h>
#include<glut.h>

#include<math.h>

const float DEG2RAD = 3.14159/180;
static GLint posX = 0, posY = 0;
int n1=0,n2=0;
int n=0;

int rad1_get(int x)
{
int x1=x-n1;
return x1;
}
int rad2_get(int y)
{
int y1=y-n2;
return y1;
}
int C1(int x)
{
int x1=.5n1+.5x;
return x1;

}
int C2(int y)
{
int y1=.5n2+.5y;
return y1;
}
void circle(int x,int y)
{
glColor3f(1.0,1.0,1.0);
glBegin(GL_LINE_LOOP);

for (int theta=0; theta&lt;360; theta++)

{
float degInRad = theta*DEG2RAD;
glVertex3f(cos(degInRad)*rad1_get(x) +C1(y), sin(degInRad)*rad2_get(y)+C2(x),5);

}
glEnd();
//glFlush();

}
void copy_buffer()
{
static GLint viewport[4];
static GLfloat raster_pos[4];

glGetIntegerv(GL_VIEWPORT, viewport);

/* set source buffer */
glReadBuffer(GL_FRONT);

/* set projection matrix */
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity() ;
gluOrtho2D(0, viewport[2], 0, viewport[3]);

/* set modelview matrix */
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadIdentity();

/* save old raster position */
glGetFloatv(GL_CURRENT_RASTER_POSITION, raster_pos);

/* set raster position */
glRasterPos4f(0.0, 0.0, 0.0, 1.0);

/* copy buffer */
glCopyPixels(0, 0, viewport[2], viewport[3], GL_COLOR);

/* restore old raster position */
glRasterPos4fv(raster_pos);

/* restore old matrices */
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);

/* restore source buffer */
glReadBuffer(GL_BACK);
}

void squar(int x,int y)
{
int x1=x-n1;
int y1=y-n2;
glBegin(GL_QUADS);
glVertex2f(n1,n2);
glVertex2f(x,n2);
glVertex2f(x,y);
glVertex2f(n1,y);
glEnd();
glFlush();
}

void MenuRight(int val)
{
/* Push to RIGHT mouse button and Choose “Exit” /
/
exit */
exit(0);
}

void mousefun(int button, int state, int x, int y)
{

if (button == GLUT_LEFT_BUTTON && state == GLUT_DOWN) 
{
	
	posX=x;
    posY=y;
	n1=x;
	n2=y;
	//glDrawBuffer(GL_FRONT);
	cout&lt;&lt;"front"&lt;&lt;endl;

	
	
}
if (button == GLUT_LEFT_BUTTON && state == GLUT_UP) 
  {

	//glClear(GL_COLOR_BUFFER_BIT);	
  //glutSwapBuffers();
  //squar(x,y);
}
	if (button == GLUT_RIGHT_BUTTON && state == GLUT_DOWN) 
  {
		
      
	 
	}
	if (button == GLUT_MIDDLE_BUTTON && state == GLUT_DOWN)
	{ 
		glutSwapBuffers();
	

}

}
void clear(int x,int y)
{

glColor3f(0.0,0.0,0.0);
glBegin(GL_LINES);
glVertex2f(n1,n2);
glVertex2f(x,y);

glEnd();
glFlush();
cout&lt;&lt;"$"&lt;&lt;n1&lt;&lt;endl;

}
void Line(int x,int y)
{
glColor3f(1.0,1,1.0);
glBegin(GL_LINES);
glVertex2f(posX,posY);
glVertex2f(x,y);
glEnd();
glFlush();
}

void mouse_motion (int x, int y)
{
glClear(GL_COLOR_BUFFER_BIT);
circle(x,y);
glEnd();
glFlush();
}

void mydisplay()
{
glOrtho(0, 300, 300, 0,-10,10);

glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0,1.0,1.0);
glDrawBuffer(GL_FRONT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
;



glFlush();

// glutPostRedisplay();
//glutSwapBuffers();
}

int main ()
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);

glutCreateWindow("assignment 1");

glutDisplayFunc(mydisplay);
glutMotionFunc(mouse_motion);

glutMouseFunc(mousefun);
glutMainLoop();

return 1;

}

when i draw any circle the privous one is gone…
how can i fix this?