7

我正在努力在 3D 空间中定位 iPhone 设备。

我可以使用 lat/long 来检测物理位置,我可以使用磁力计来确定他们面对的方向,我也许可以使用加速度计来确定他们的设备是如何定向的,但我不知道想办法让设备的高度离开地板。

具体来说,我需要知道用户是蹲下还是将手伸向天花板(大约 2 米/6 英尺不同)。

我在我的博客上发布了我正在尝试做的更详细的描述:http ://pushplay.net/blog_detail.php?id=36

我会喜欢任何关于如何伪造此类信息的建议。我真的想要那种需要低头和摆动的交互性和运动,而不是让别人坐下来调整手机的角度——就像人们可以“欺骗”玩 Wii 的方式......

4

3 回答 3

7

我能看到你最接近你正在寻找的东西是使用加速度计/磁力计作为惯性跟踪器。您必须在启动时将用户的初始位置校准到“基本”位置,然后在后台线程上连续采样传感器以构建运动模型。这篇文章讨论了提高加速度计功能的默认采样率,以便您可以获得用户运动的非常精细的图片。

我不确定这是否会解决您对人们只是将设备倾斜以产生所需动作的担忧,但您必须在解释动作过于严格和允许动作差异之间取得平衡

于 2009-09-04T16:37:30.633 回答
1

CoreLocation 的东西给你海拔以及纬度/经度,所以你可能会使用它,尽管这有一些重大问题:

  • 在室内无法正常工作(对卫星导航来说不是问题,对游戏来说是个问题)
  • 您的用户必须“校准”(可能通过将手机放在地板上)他们使用的每个位置!
  • 实际上,您需要开始保留“先前校准的位置”的列表......这可能仅在一个房子(例如多个房间和楼层)中变化很大。可能会妨碍比赛。
  • 不能用于移动交通工具(火车、飞机、汽车……甚至步行),因为海拔变化如此频繁。

因此,我认为使用加速度计作为高度的代理是比确定绝对高度更可取的路线。

于 2009-09-04T18:31:12.590 回答
0

我对iphone不是很熟悉。但它可能需要一个硬件插件。(您可能不想这样做)。在考虑了这一点之后,我知道的唯一方法是通过光或更特定的激光。您在地板上发射激光并记录返回所需的时间。将这些硬件放在一起实际上并不多,而且我确信 iphone 具有外围设备连接。除非 osmeone 能胜过我,否则我说没有办法用图像来做到这一点。

于 2009-09-04T16:43:09.827 回答