2011-03-21 88 views
1

我注意到在iPhone上实在令人费解的行为:iPhone指南针指向哪里? (数学问题,而不是地理)

如果我拿着手机在垂直和倾斜它,指南针变化。

我已经计算出它改变的数量是相同的数量,它会改变相同数量的倾斜,如果它是水平的(即:假设一个来自屏幕的矢量被称为Y,扭转Y无关紧要iPhone的态度导致指南针改变)。

我想弥补的是,我的应用程序并没有做出你持有水平的手机(虽然我做的计划也让一些倾斜的X轴,让我们称呼它,从像10度至135)

但我真的想不通iPhone是如何计算的标题,从而在前进方向向量实际指向...

回答

2

一些科学实验的风格后,我发现:

iPhone有磁力计,它具有3轴,X,从屏幕左边到右边。 Y,从下往上。 Z,它来自电话后面,并且位于前面。

地球磁场是物理定律而非球体与预期一样,我(巴西)的位置,它是倾斜约30度。 (这意味着我必须将手机以30度角保持到零2轴)。

一种可能的技术来计算北部,是使用切向于磁场的矢量的矢量积(即:向量磁力计报告给你),和重力。结果将是一个向东指向的向量。如果你希望你可以在东方和重力之间制造另一个交叉产品,则会产生一个指向北方的向量。

要知道,iPhone的传感器都相当不错,和每一个微小的波动和振动被捕获,因此它是使用低通滤波器,从信号中去除噪声好主意。

iPhone本身,有着复杂的程序确定的“真航向”,我不完全理解了它,但它使用加速度计以某种方式补偿倾斜。您可以使用加速度计,并根据需要进行补偿,例如,如果手机倾斜70度,您也可以将真实方位改变70度,结果将是手机忽略倾斜。

也是如此标题的程序,验证,如果iPhone是倒置与否。如果我们把它看作水平的,在你面前为0,那么在135度时或多或少地认为它是颠倒的,并翻转结果。

注意同一坐标系也适用于加速计,让没有太多摆弄使用加速度计和磁力数据之间的矢量操作。

+0

优秀的答案,speeder,但有一个不准确:“真正的标题”计算与位置信息,而不是加速度计。根据你在地球上的位置,它可以计算出磁道偏离真北极的距离。 – fishinear 2012-03-14 11:00:10