Hi. I've been having trouble making an auto-moving circle and a rubbber-banding circle in a program I'm trying to write. This program is pretty much just to get me started in OpenGL. What I need to do is have the auto-moving circle be blue and go from the bottom left to the top right of the screen. And the rubber-banding circle should be white when i'm adjusting it and green when it's fixed. Here's my current code; any help, advice, code alterations, or links to any tutorials will be greatly appreciated. thank you

Code:
#include "stdafx.h"
#include <string>
#include "glut.h"
#include <iostream>
#include <math.h>

float globalx;
float globaly;
int displayMode;
const float DEG2RAD=3.14159/180;

float xCon(float x)
{
	float xNew;
	xNew=(float)x/(500.0/2.0);
	xNew=xNew-1.0;
	
	return xNew;
}

float yCon(float y)
{
	float yNew;
	yNew=(float)y/(500.0/2.0);
	yNew=yNew-1.0;
	yNew=-yNew;

	return yNew;
}

void display(void)
{
	glClearColor(0,0,0,0);
	glClear(GL_COLOR_BUFFER_BIT);
	glMatrixMode (GL_PROJECTION);
	glLoadIdentity ();
	glFlush();
}

void drawRedSquare(int x, int y)
{
	globalx=xCon((float)x);
	globaly=yCon((float)y);
	glColor3f(1.0,0.0,0.0);
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_POLYGON);
	glVertex2f(globalx-0.05,globaly-0.05);
	glVertex2f(globalx-0.05,globaly+0.05);
	glVertex2f(globalx+0.05,globaly+0.05);
	glVertex2f(globalx+0.05,globaly-0.05);
	glEnd();
	glFlush();
}

void drawYellowSquare(int x=-0.1, int y=0.1)
{
	globalx=xCon((float)x);
	globaly=yCon((float)y);
	glColor3f(1.0,1.0,0.0);
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_POLYGON);
	glVertex2f(globalx-0.05,globaly-0.05);
	glVertex2f(globalx-0.05,globaly+0.05);
	glVertex2f(globalx+0.05,globaly+0.05);
	glVertex2f(globalx+0.05,globaly-0.05);
	glEnd();
	glFlush();
}

void drawCircle(float x, float y, float radius)
{
	glBegin(GL_LINE_LOOP);
	for (int i = 0; i < 360; i++)
	{
		float degInRad = i * DEG2RAD;
		glVertex2f(x+cos(degInRad)*radius, y+sin(degInRad)*radius);
	}
	glEnd();
}

void mouseSquare(int button, int state, int x, int y)
{
	if (button==GLUT_LEFT_BUTTON && state==GLUT_DOWN)
	{
		globalx=xCon(x);
		globaly=yCon(y);
		printf("%f, %f", globalx, globaly);
		glutMotionFunc(drawRedSquare);
		glFlush();
		//glutPostRedisplay();
	}
	globalx=xCon(x);
	globaly=yCon(y);
	glutPassiveMotionFunc(drawYellowSquare);
	glFlush();
	//glutPostRedisplay();
}
void keyboard(unsigned char key, int x, int y)
{
	if (key == 27)
		exit(0);
}

void menu(int id)
{
	switch(id)
	{
	case 1:
		//glClear(GL_COLOR_BUFFER_BIT);
		glutMouseFunc(mouseSquare);
		glClear(GL_COLOR_BUFFER_BIT);
		glFlush();
		glEnd();
		break;
	case 2:
		glFlush();
		glEnd();
		glClear(GL_COLOR_BUFFER_BIT);
		//glutIdleFunc();
		break;
	case 3: exit(0);
		break;
	}
	glutPostRedisplay();
}

int main(int argc, char* argv[])
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(500,500);
	glutInitWindowPosition(0,0);
	glutCreateWindow("Assignment 1");
	glutDisplayFunc(display);

	static int menuvar;
	menuvar=glutCreateMenu(menu);
	glutAddMenuEntry("Rectangle With Mouse",1);
	glutAddMenuEntry("Automoving Circle",2);
	glutAddMenuEntry("Rubberbanding Circle",3);
	glutAttachMenu(GLUT_RIGHT_BUTTON);

	glutKeyboardFunc(keyboard);
	//glutMouseFunc(mouse);
	
	glutMainLoop();

	return 0;
}