2011-03-21 29 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