0

我正在为android创建一个coverflow视图,但是在处理视图上的点击时遇到了一点障碍。我无法确定点击下方的方块。为了确定点击了哪个方格,将点击事件中的(X,Y)数据转换为opengl视图空间。将它放在正方形上时会出现问题:转置、旋转和比较都可以在 java 中完成,但这似乎是一种巨大的浪费,因为所有这些操作都是在渲染视图时完成的。

所以,我的问题是:如何在 opengl 渲染过程中提取 2d 视图映射对象坐标?

我的大脑有点扭曲,试图弄清楚opengl的模型和投影矩阵中的实际内容,但我似乎找不到任何关于矩阵中数字实际含义的规范。

谢谢!

4

2 回答 2

2

您可以使用gluUnProject()andgluProject()在对象和窗口空间之间进行转换,并为自己节省一些数学。文档在这里这里

于 2012-07-02T20:12:25.253 回答
1

还有另一种技术涉及渲染一帧,其中场景中的所有图元都以不同的颜色渲染。然后就可以在触摸事件下测试像素颜色了。您可以使用这种技术来玩一些技巧,例如缩小视口,使其仅是触摸周围的一小块区域,并将其渲染为纹理,以便用户永远看不到它。

于 2012-07-02T20:26:11.613 回答