2010-12-09 32 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); 

这种运作良好:)

问题是

何我能得到我摆在我面前的广场的位置(在我面前10分)。我想要世界x,y,z坐标

+0

问题是? – Bart 2010-12-09 13:58:24

+0

在StackOverflow上搜索相关标签[opengl] [picking]。 – Kos 2010-12-09 14:41:37

回答

1

为了获得屏幕空间中某点的当前世界空间坐标,您可以使用gluUnProject函数。这对你来说会派上用场。

还有gluProject以相反的顺序进行此操作。