我在本網站上的這個培訓教程http://developer.android.com/training/graphics/opengl/touch.html#listener下面。有人向我解釋來自android開發人員網站的代碼
該鏈接顯示瞭如何響應觸摸事件和旋轉三角形的示例。 我的代碼的所有設置和工作的i-只是不明白的代碼這部分:
private final float TOUCH_SCALE_FACTOR = 180.0f/320;
private float mPreviousX;
private float mPreviousY;
@Override
public boolean onTouchEvent(MotionEvent e) {
// MotionEvent reports input details from the touch screen
// and other input controls. In this case, you are only
// interested in events where the touch position changed.
float x = e.getX();
float y = e.getY();
switch (e.getAction()) {
case MotionEvent.ACTION_MOVE:
float dx = x - mPreviousX;
float dy = y - mPreviousY;
// reverse direction of rotation above the mid-line
if (y > getHeight()/2) {
dx = dx * -1 ;
}
// reverse direction of rotation to left of the mid-line
if (x < getWidth()/2) {
dy = dy * -1 ;
}
mRenderer.setAngle(
mRenderer.getAngle() +
((dx + dy) * TOUCH_SCALE_FACTOR));
requestRender();
}
mPreviousX = x;
mPreviousY = y;
return true;
}
getAngle和setAngle是那種在mRenderer對象實用方法作爲可以在鏈路中所示的示例中進一步可見。
我需要一個關於這個代碼如何準確計算角度的解釋,它如何將增量dx和dy以及它們作爲一個角度來使用,getHeight和getWidth發生了什麼並不是這些高度和寬度整個屏幕?我希望我已經清楚,謝謝。
我也在尋找解釋:) –