Android OpenGL分别移动形状

时间:2013-12-27 22:48:59

标签: android opengl-es

我是OpenGL的新手,我想请你帮忙甚至是代码示例(我浏览了很多页面,但似乎我太新鲜了,无法找到正确的答案或提出有效的问题)。< / p>

我的用例是:创建3个三角形,并允许用户通过手指在屏幕上的不同位置移动每个三角形(如拖放)

在渲染器内部,我保留了三角形物体:

public class MyGLRenderer implements GLSurfaceView.Renderer
{
    ArrayList<MyTriangle> myObjectsOnSurface_;
}

但是如何确定我应该从onTouchEvent(..)移动哪个对象?

public class MyGLSurfaceView extends GLSurfaceView {
    @Override
    public boolean onTouchEvent(final MotionEvent evt) {
        float currentX = evt.getX();
        float currentY = evt.getY();

        ....
    }
}

1 个答案:

答案 0 :(得分:0)

一种方法可以是维持每个三角形的中心点(x,y)的数据结构,然后在触摸事件上确定是否有任何中心点靠近触摸点。如果从触摸(x,y)到其中心点(x,y)的欧几里德距离是可接受的,则仅移动三角形。 2D距离== sqrt((x1-x2)^ 2 +(y1-y2)^ 2)。这个过程超出了OpenGL调用的范围,所以滚动你自己的解决方案听起来很合理。