如何確定iOS應用程序中y方向的傾斜位置?首先,我試着玩加速度計。但即使iPhone沒有傾斜,加速度計值也會改變。然後我試着玩陀螺儀。但是,它只能感知傾斜的速度,而不是傾斜的位置。傾斜位置iOS應用程序
下面是具體是什麼,我試圖做的事:
如果您將iPhone上的表格中頂部的home鍵的景觀位置。然後,您緩慢地繼續按照使顯示屏朝下的方式進行翻轉(您會看到手機的後部),並且主頁按鈕仍位於左側。那個需要做的傾斜動作就是我想要測量的。
如何確定iOS應用程序中y方向的傾斜位置?首先,我試着玩加速度計。但即使iPhone沒有傾斜,加速度計值也會改變。然後我試着玩陀螺儀。但是,它只能感知傾斜的速度,而不是傾斜的位置。傾斜位置iOS應用程序
下面是具體是什麼,我試圖做的事:
如果您將iPhone上的表格中頂部的home鍵的景觀位置。然後,您緩慢地繼續按照使顯示屏朝下的方式進行翻轉(您會看到手機的後部),並且主頁按鈕仍位於左側。那個需要做的傾斜動作就是我想要測量的。
您應該考慮使用Core Motion API,因爲它提供了可用作歐拉角,四元數或旋轉速率的值。看看
Accelerometer detection and sprite rotation
iPhone - What does the gyroscope measures? Can I get an absolute degree measurement in all axis?
加速度計是你想要的。如果你的加速度矢量爲a = (x, y, z)
,那麼這個向量和三個軸之間的角度由下式給出:
cos (angleXaxis) = x/sqrt(x^2 + y^2 + z^2)
cos (angleYaxis) = y/sqrt(x^2 + y^2 + z^2)
cos (angleZaxis) = z/sqrt(x^2 + y^2 + z^2)
讓自己,你需要使用反餘弦函數的角度。
所有作爲,做的是打印出來的x,y和z分量。當然,在我的問題中,如果我說過,即使iPhone沒有傾斜,加速計值也會改變,我已經看到了x,y和z值。 – CodeGuy
在我的問題中,我詳細解釋了我想要的傾斜度。是的,我會想象這個角度是有用的。但該教程不包括這一點。 – CodeGuy
如何?我做了以下: float distanceFactor = sqrt((xx * xx)+(yy * yy)+(zz * zz)); float ax = acos(xx/distanceFactor); float ay = acos(yy/distanceFactor); float az = acos(zz/distanceFactor); 其中xx,yy和zz是加速度計值。但是當我按照我所說的方式傾斜手機時,斧頭和az角都會發生變化...... – CodeGuy