2011-07-01 96 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