2012-07-14 99 views
0

可能重复:
Visually correct rotation with OpenGl and touch screen capabilitiesAndroid的OpenGL的旋转立方体触摸运动的方向

我有我想要在同一方向旋转,我动了我的手指,而立方体接触。我知道如何获得当前的触摸移动并使用这些值旋转立方体,但这不是我想要的。

这是我目前正在使用:

case MotionEvent.ACTION_DOWN: 
     mx = me.getX(); 
     my = me.getY(); 
     break; 
    case MotionEvent.ACTION_MOVE: 
     x_diff = mx - me.getX(); 
     y_diff = my - me.getY(); 
     mx = me.getX(); 
     my = me.getY(); 
     this.rot_x -= y_diff; 
     this.rot_y -= x_diff; 
     break; 

旋转:

gl.glRotatef(rot_x, 1, 0, 0); 
gl.glRotatef(rot_y, 0, 1, 0); 
gl.glRotatef(rot_z, 0, 0, 1); 
+0

你会发现在这里很多类似的问题,比如http://stackoverflow.com/questions/11207805/visually-correct-rotation-with - 触摸屏和触摸屏功能 – rotoglup 2012-07-14 22:57:00

回答

0

你没有指定它是你不快乐与你当前实现什么,但一个想法可能是使用VelocityTracker并根据触摸速度为立方体分配三维速度,然后在您停止移动手指时使立方体缓慢减速回到静止状态。这会给互动带来更自然的感觉。

+0

这不完全是我问的。下面是一个例子:目前我有这样的例子:例如,当我沿x轴旋转对象180度然后尝试沿着y旋转对象时,它沿相反的方向旋转。我想要做的就是让它始终与触摸移动方向一致。 – Urho 2012-07-14 20:57:45