2011-03-07 45 views
2

我試圖建立一個增強現實演示,這樣的iPhone應用程序: http://www.acrossair.com/acrossair_app_augmented_reality_nearesttube_london_for_iPhone_3GS.htm增強現實演示

但是我幾何/數學是有點生疏了時下。

這是我知道的:

  • 如果我有我的Android手機上的橫向模式(與左邊的home鍵),我的Z軸指向的方向,我期待。

  • 從我的手機的傳感器我知道什麼是我的Z軸與北軸的角度,我們稱之爲θ角。

  • 如果我從當前位置到我想在我的屏幕來顯示點的矢量,我可以計算出我的Z軸這個載體做的角度。我們稱這個角度爲α。

所以,基於alpha角度我有一個感知點的位置,我可以在屏幕上顯示它(如最近管應用程序)。

這是一個簡單的演示的基本理論(當然它沒有像應用程序,但它的第一步)。

有人可以給我在這個問題上的一些燈?

[更新]

我發現這很有趣example,但是我需要有兩個xxyy軸的運動。任何提示?

+0

這裏有什麼問題?你似乎理解這個過程 - 你只是問如何使用trig來計算alpha和theta? – 2011-03-10 18:59:26

+0

我已更新我的問題。 – ffleandro 2012-08-09 22:14:00

回答

2

的基礎知識很容易。你需要你的位置和你的命運之間的角度(arctangent),以及標題(來自手機中的數字羅盤)。看到這個答案:Augmented Reality movement下面有一些Objective-C代碼,如果你來自java,你可以閱讀。

1

你想要的是一個三維空間填充形曲線例如希爾伯特曲線。這是一個超過3個座標的空間索引。它與八叉樹相當。您想要將對象存儲在八叉樹中,並對您用iphone記錄的座標進行深度法檢索,作爲固定座標,可能是屏幕的中心。八叉樹將空間連續地沿着第八方向細分,並且三維空間填充曲線是穿過該空間的哈密爾頓路徑,其像分形一樣,但它明顯不同於八叉樹的區域。我使用2d-hilbert曲線來加速地理空間數據庫中的搜索。也許你想先從這個開始?

+0

這只是一個演示,這意味着我更關心如何顯示點而不是擔心可伸縮性。 – ffleandro 2011-04-27 16:40:43