# How to position a sphere and click on it

Hi!

I have 2 questions I hope someone can answer me!

This is my code for the drawing/rendering:

``````  //Draw the axes
glBegin(GL_LINES);

glColor3f(1.0f,0.0f,0.0f);	//Red
glVertex3i(0,0,0);
glVertex3i(300,0,0);

glColor3f(0.0f,0.0f,1.0f); //Blue
glVertex3i(0,0,0);
glVertex3i(0,300,0);

glColor3f(0.0f,1.0f,0.0f); //Green
glVertex3i(0,0,0);
glVertex3i(0,0,300);

//Draw sphere number 1
glColor3f(1.0f,1.0f,1.0f); //White
GLdouble radius = 3.0;
GLint slices, stacks;
slices = stacks = 10;
gluSphere( myQuad , radius , slices , stacks  );

//Draw sphere number 2
glColor3f(1.0f,0.0f,0.0f); //Red
gluSphere( myQuad , radius , slices , stacks  );

//Draw sphere number 3
glColor3f(0.0f,0.0f,1.0f); //Blue
gluSphere( myQuad , radius , slices , stacks  );

glEnd();
``````

Question #1: This code places all the spheres at the origin, no surprise since this is stated in the definition of the gluSphere function. But how can I set the position to whatever I want?

Question #2: How can I be notified when the user clicks on one of the spheres? I also need to know which of the spheres that were clicked?

Very greatful for any help here!

Cheers!

Rendering objects at different locations:

``````glMatrixMode(GL_MODELVIEW);
glPushMatrix(); //remember current matrix
glTranslatef(x1,y1,z1);
glBegin(<type>); /* render something */ glEnd();
glPopMatrix(); //restore matrix

glPushMatrix(); //remember current matrix
glTranslatef(x2,y2,z2);
glBegin(<type>); /* render something else */ glEnd();
glPopMatrix(); //restore matrix
``````

As for detecting which sphere was clicked there are two common ways:
-calculate it yourself using some math
-use OpenGL’s selection mode - this is what I would suggest