1

我正在寻找一种在屏幕上触摸屏幕的位置有一个 opengl 对象(三角形等)的方法。我现在在屏幕上有一个 3D 金字塔,它在屏幕上移动,基于你的触摸开始和你拖动到的位置之间的差异。
在普通的surfaceViews中我可以做类似的事情element.x = event.getX(),但这在openGL中不起作用。所以有人有想法吗?
ps:我使用的是java/Android。

4

1 回答 1

2

OpenGL 也不像表面视图,其中每个元素都是持久的。它相当于钢笔和画笔的 3D。您需要自己跟踪所有数据。

因此,在您的触摸事件处理程序中,您使用输入坐标来投射一条射线,使某个平面垂直于视图。您必须自己实现此投影,但这很容易:搜索“射线平面相交”。这为您提供了平面上的坐标,该坐标与用户触摸的屏幕上的点投影相对应。您可以使用此坐标来变换对象并重绘场景。

于 2011-06-30T12:42:52.937 回答