2011-07-01 45 views
2

如何確定iOS應用程序中y方向的傾斜位置?首先,我試着玩加速度計。但即使iPhone沒有傾斜,加速度計值也會改變。然後我試着玩陀螺儀。但是,它只能感知傾斜的速度,而不是傾斜的位置。傾斜位置iOS應用程序

下面是具體是什麼,我試圖做的事:

如果您將iPhone上的表格中頂部的home鍵的景觀位置。然後,您緩慢地繼續按照使顯示屏朝下的方式進行翻轉(您會看到手機的後部),並且主頁按鈕仍位於左側。那個需要做的傾斜動作就是我想要測量的。

回答

2

加速度計是你想要的。如果你的加速度矢量爲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) 

讓自己,你需要使用反餘弦函數的角度。

+0

所有作爲,做的是打印出來的x,y和z分量。當然,在我的問題中,如果我說過,即使iPhone沒有傾斜,加速計值也會改變,我已經看到了x,y和z值。 – CodeGuy

+0

在我的問題中,我詳細解釋了我想要的傾斜度。是的,我會想象這個角度是有用的。但該教程不包括這一點。 – CodeGuy

+0

如何?我做了以下: 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