【问题标题】:UIAccelleration value rangeUIAcceleration 值范围
【发布时间】:2013-04-15 15:24:34
【问题描述】:

AppleDeveloper 指南似乎暗示 UIAccelerationValue 可以介于 -1.0 和 +1.0 的双精度值之间。

我已经记录了来自真实设备的值,同时用疯狂的手势“摇晃”我的 iPod touch,得到的 x 值高于 2.0(例如 +2.1、-2.1)并且没有 y 值高于 2.0f。

  • 谁能解释一下?
  • 是否有人确定了 UIAccelerationValue 的 MAX 和 MIN 值?

我对此的看法是,Apple 已经实施了一些近似重力的算法,并将高于标准速度近似值的 1.0 值作为 1.0 值(例如,速度值为 9.8 m/s)。

  • 还有其他猜测吗?

【问题讨论】:

  • 您可能误解了文档的一部分。没有地方说该值在-1.0之间。和 1.0,据我所知。

标签: ios accelerometer gravity uiaccelerometer


【解决方案1】:

您可能误解了文档的一部分。它没有说该值在-1.0之间。和 1.0,据我所知。它说:

设备加速度计以单位为单位报告每个轴的值 g-force,其中 1.0 的值表示大约 +1 g 的加速度 沿着给定的轴。当设备背对着静止放置时 水平表面,每个加速度事件大约有 以下值:

“g”在这里用于特定的技术意义; 1g 是一个standard gravity;比这更快的手机会记录到高于 1 的读数。手的剧烈抖动很容易导致加速度和减速度值高于 9.8m/s2

【讨论】:

  • 酷,感谢您的回答,我还没有找到那篇文档。很高兴确认他们使用的范围。所以我可以推断没有 MAX 值,因为加速度可以很低(2g、3g 等)。我打算用它来显示一些 HUD 图形,以沿 x 和 y 轴校准游戏控制器。
  • 是的,确实如此:最大值甚至可能取决于加速度计硬件。当然,如果您的 iPhone 曾经注册过非常高的 g,那么很有可能它会被冲击力破坏而无法报告该值:D。您可能还想研究使用低通滤波器算法通过过滤掉突然的运动来“清理”这些值——也许见this question and its answers
  • 非常有用的评论。我通过允许用户设置加速度计的灵敏度来使用基本过滤器(默认情况下“如果值> 0.5f则更改”)。您对在级别开始时校准值有什么建议吗?我目前允许用户通过设置 UIAccelerometer 值并与当前 UIAccellerometer 输入有所不同来这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 1970-01-01
  • 2014-02-21
  • 2011-05-08
  • 2015-06-04
相关资源
最近更新 更多