2011-03-07 88 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