To define the gluSphere() position.

Ok,i can use gluSphere() draw a ball at (0.0f,0.0f,0.0f),and then translatef(…),yes ,that work well.
but i turn on a light…if i still do in above way, i will get a wrong lighting.

I want a function to define the position to draw a gluQuadric object.

any idea?

Lighting is affected by transformations, so where you put the lighting code will make a difference. Let’s see if I remember this correctly. (It’s been a rough week and my brain is fried.)

If you do things in this order…

set lighting
do transformations
draw object

It is as if the light is in a set position and you are moving the object around.

If you do it in this order…

do transformations
set lighting
draw object

It’s more like you are moving a camera because the lighting will follow the movements of the object.

More detailed, the most common way to do it will be:
-setup the projection matrix
-setup de modelview matrix (with gluLookAt for example)
-setup lights
-for each object:
–push modelview matrix
–setup object matrix in the modelview matrix
–draw object
–pop modelview matrix