opengl - How to get the position of an orbiting sphere -


i'm trying position of sphere rotating around idle object in opengl application. how perform orbiting:

            gltranslatef(positions[i].getposx(), //center of rotation (yellow ball)                            positions[i].getposy(),                            positions[i].getposz());             glrotatef(rotation_angle,0.0,1.0,0.0); //angle of rotation             gltranslatef(distance[i].getposx(), //distance center of rotation                            distance[i].getposy(),                            distance[i].getposz()); 

variable rotation_angle loops 0 360 endlessly. in distance vector i'm changing z-distance of object, example let's idle object in (0,0,0), distance vector (0,0,200).

opengl draws stuff. doesn't maintain "scene". you'll have math yourself. simple multiplying vector (0,0,0,1) current modelview-projection matrix , perform viewport remapping. has been conveniently packed in glu (not opengl) function gluproject.

since you're using (old-and-busted) fixed function pipeline procedure follows about

gldouble x,y,z; gldouble win_x, win_y, win_z; gldouble mv[16], prj[16]; glint vp[4]; glgetdoublev(gl_modelview_matrix, mv); glgetdoublev(gl_projection_matrix, prj); glgetinteger(gl_viewport, vp); gluprojection(x,y,z, mv, prj, vp, win_x, win_y, win_z); 

note due opengl's stateful nature value of modelview , projection matrix , viewport at moment of drawing sphere matters. retrieving values @ other moment may produce different data , result in outcome inconsistent drawing.


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -