2014-06-30 75 views
1

我試圖將在android中呈現的簡單OpenGL三角形移動到觸摸位置。在OpenGL ES中正確的位置翻譯

我似乎只能讓三角形以網格的方式移動。這是因爲儘管我盡了最大的努力,我將X和Y座標增加了相同的數量。我試圖用一種標準化的值來改變移動速度,以便X或Y的變化取決於哪個(X或Y)更接近目標位置,但這是無濟於事的。我想知道我錯過了什麼,想知道是否有人可以幫助,因爲我沒有想法如何讓這個工作。

回答

0
PointF vector = new PointF(); 

vector.x = destination.getX() - origin.getX(); 
vector.y = destination.getY() - origin.getY(); 

float length = (float)Math.sqrt(vector.x * vector.x + vector.y * vector.y); 

// Normalize 
vector.x /= length; 
vector.y /= length; 

// when you move your rectangle: 

PointF newPosition = new PointF(); 
newPosition.x = currentPosition.x + (millisecSinceLastAnimationTick/1000f) * amountToMovePerSecond * vector.x; 
newPosition.y = currentPosition.y + (millisecSinceLastAnimationTick/1000f) * amountToMovePerSecond * vector.y; 

glTranslate(newPosition.x, newPosition.y, 0); 

currentPosition.set(newPosition); 

這應該讓你開始。