1
我試圖將在android中呈現的簡單OpenGL三角形移動到觸摸位置。在OpenGL ES中正確的位置翻譯
我似乎只能讓三角形以網格的方式移動。這是因爲儘管我盡了最大的努力,我將X和Y座標增加了相同的數量。我試圖用一種標準化的值來改變移動速度,以便X或Y的變化取決於哪個(X或Y)更接近目標位置,但這是無濟於事的。我想知道我錯過了什麼,想知道是否有人可以幫助,因爲我沒有想法如何讓這個工作。
我試圖將在android中呈現的簡單OpenGL三角形移動到觸摸位置。在OpenGL ES中正確的位置翻譯
我似乎只能讓三角形以網格的方式移動。這是因爲儘管我盡了最大的努力,我將X和Y座標增加了相同的數量。我試圖用一種標準化的值來改變移動速度,以便X或Y的變化取決於哪個(X或Y)更接近目標位置,但這是無濟於事的。我想知道我錯過了什麼,想知道是否有人可以幫助,因爲我沒有想法如何讓這個工作。
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);
這應該讓你開始。