2015-09-17 83 views
0

我想在Unity遊戲中用兩根手指實現旋轉手勢。用兩根手指計算觸摸旋轉角度

因此,一旦兩根手指觸摸屏幕,我就會保存手指索引及其初始觸摸位置。 基於這些初始位置,我想測量兩個手指位置相比於初始角度的想象線的增量角度。

我的想法是否正確,如果我擁有觸摸位置,該如何實現?

+0

據我所知,只有一個手指會移動(另一個將保持爲旋轉點)。繪製兩條(虛構)線條:從初始位置的第一根手指到第二根手指;並從第一手指(不移動)移動到第二手指的最終位置。確定兩條線之間的角度(使用基本三角)。 – varocarbas

+0

如果兩個手指同時移動,我想鼓勵用戶去做,因爲感覺更自然,這會失敗。 – Hedge

+0

「失敗」?這不能失敗;它是你的應用程序可以理解的運動類型的一種建議(如果你不喜歡它會提出一個不同的建議)。從邏輯上講,當我說「不移動」時,我並不是說即使移動一個像素也不移動(但幾乎不移動)。一個給定的運動必須進行硬編碼;在隨機移動的手指之間不能確定角度。我所描述的行爲在嘗試旋轉時更自然(至少對我而言)。參考/靜態/中心點是旋轉的基礎;你會怎麼理解呢? – varocarbas

回答

1

如果前兩個觸摸點是A1和B1,後兩個觸摸點是A2和B2,則D1 = A1-B1代表起始角度,D2 = A2-B2代表精加工角度,在角度將是類似atan2(D2.y, D2.x)-atan2(D1.y, D1.x)(細節取決於您的實施)。它仍然是你決定是否A1和A2,或A1和B2是同一個手指!可能兩種可能性中較小的一個是最佳選擇?

+0

啊,我會試試看,並報告它是否有效。 – Hedge