2012-12-01 150 views
0

如何計算手機旋轉的數量?其中「零度」是您指定的值。如何計算Android手機相對於手機的旋轉度

例如,假設你有一個你手機平板盈在桌子上的縱向位置 - 我們稱之爲「零度」。

你旋轉手機的權利,以便它現在是景觀(電話指向右側的頂部) - 這將是「90度」。

在旋轉時,手機會一直旋轉20,30,40等度

到目前爲止,我發現來檢測手機旋轉的方式是通過加速計和指南針,即「getAzimuth()」。然而,「零度」總是北方。

有沒有一種方法可以計算手機的旋轉而不是與基本方向有關?

注:

  • 使用libgdx,雖然傳感器行爲不應相差太大
  • getRotation()」似乎能在0〜確定旋轉,90度,270度,但不值之間
  • 電話我使用不具備陀螺儀,理想的解決方案並不需要陀螺儀無論是

謝謝:)

+1

您可以計算任意兩個向量之間的角度。如果其中一個方向朝北(0方位) - 這只是一個特例。您可以選擇任何其他角度作爲基準,並從下一次測量中替換。沒有辦法告訴手機0方位角不指向北方。順便說一下,'旋轉'是關於屏幕的方向,這是移動旋轉的副產品。 – Stan

+0

你可以嘗試一下,getRotation如何計算它:https://github.com/android/platform_frameworks_base/blob/master/core/java/android/view/Display.java#L456 – CQQL

+0

@Stan如果你把作爲你的評論'答案'我會高興地接受它 - 因爲經過很多挫折,這是我發現:) – pyko

回答

2

可以計算任何兩個向量之間的角度。如果其中一個方向朝北(0方位角) - 這只是一個特例。您可以選擇任何其他角度作爲基準,並從下一次測量中減去它。

沒有辦法告訴手機0方位角不指向北方。順便說一句,「旋轉」是關於屏幕方向,這是移動旋轉的副產品。

0

檢查你的手機旋轉,你可以使用加速度計動作感應器,下面的鏈接秀一下基本的運動傳感器link的方式,但您需要在使用該傳感器檢查全旋轉並增加旋轉值