我创建了一个充满3D立方体的3D环境,有没有人知道如何检测其中一个立方体上的触摸。我想如果我能得到立方体屏幕位置(坐标从左下角开始)那么它将非常容易
更新:
我添加了函数 - (CGPoint)getScreenCoorOfPoint:(IMPoint3D)_point3D这似乎给了我在世界上的物品位置,但我现在坚持的位是:
我的对象有位置
我在世界上的位置(gluLookAt eye [0],eye [1],eye [2])
然后我点击了屏幕
我如何加入所有这一切,这是我归档伟大的最后一件事!!!!
答案 0 :(得分:2)
在Google上查找OpenGL picking。有两种主要方法可以实现这一点,我建议您使用OpenGL.org中描述的第二种方法,因为它不涉及在屏幕外渲染任何内容:
[...]涉及通过鼠标位置拍摄拾取光线并测试与当前显示的对象的交叉点。 OpenGL不测试光线交叉点,但您需要与OpenGL交互以生成拾取光线。
另请参阅此问题以进行有关此事的一些讨论: Screen-to-World coordinate conversion in OpenGLES an easy task?