Здараствуйте. Хочу сделать передвинуть поинт на 10 пикселей вверх. Не получается Вот код:
| Код | GLdouble objx = 0, objy = 0, objz = 0;
void GetPixelPosition(int x, int y, int z) { double modelview[16], projection[16]; int viewport[4];
glGetDoublev( GL_MODELVIEW_MATRIX, modelview ); glGetDoublev( GL_PROJECTION_MATRIX, projection ); glGetIntegerv( GL_VIEWPORT, viewport );
gluUnProject(x, y, z, modelview, projection, viewport, &objx, &objy, &objz); cout<<objx<<"\t"<<objy<<"\t"<<objz<<endl; }
void display(void) { glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_POINTS);
glColor3d(1.0, 1.0, 1.0); GetPixelPosition(0, 10, 0); glVertex3d(objx, objy, objz);
glEnd();
glutSwapBuffers(); glFlush(); }
void reshape (int w, int h) { glViewport (0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode (GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }
int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize (500, 500); glutInitWindowPosition (100, 100); glutCreateWindow (argv[0]); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; }
|
Что я не правиль делаю? Заранее спасибо. |