2010-12-09 2 views
0

из-за отсутствия простого способа работы, если вы нажали на объект в 3D-мире, я решил создать свою собственную функцию, чтобы сделать это, что будет очень простойIphone OpenGL: Получение позиции объекта/текущего идентификатора

До сих пор я занимаюсь созданием квадрата, который всегда немного передо мной, даже если я двигаюсь или вращаюсь.

Что мне тогда нужно знать, так это то, что объекты теперь находятся в 3d пространстве?

Я думал, что это даст мне новую позицию

GLfloat matrix[16]; 
glGetFloatv(GL_MODELVIEW_MATRIX, matrix); 

придерживаться объекта передо мной, я делаю следующее

glTranslatef(eye[0], 1 , eye[2]); 
glRotatef(-rotation, 0, 1, 0); 
glTranslatef(0, 0 , 10); 

Это хорошо работает :)

Вопрос:

Ho Я получу позицию площади, которую я поставил передо мной (10 очков передо мной). Я хочу, чтобы мировые координаты x, y, z

+0

И вопрос в том, что? – Bart 2010-12-09 13:58:24

+0

Найдите поиск соответствующих тегов [opengl] [сбор] на StackOverflow. – Kos 2010-12-09 14:41:37

ответ

1

Чтобы получить текущие координаты пространства мира в пространстве экрана, вы можете использовать функцию gluUnProject. Это вам пригодится.

Существует также gluProject для этого в обратном порядке.

Смежные вопросы