2012-07-14 69 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

相關問題