我有一个 3 轴加速度计(任何手机),但我找不到任何好的公式来解释来自它的数据。无论我做什么动作都是生涩的/不敏感的。我读到我还需要欧拉角或旋转矩阵?
我将不胜感激任何好的阅读材料......
我有一个 3 轴加速度计(任何手机),但我找不到任何好的公式来解释来自它的数据。无论我做什么动作都是生涩的/不敏感的。我读到我还需要欧拉角或旋转矩阵?
我将不胜感激任何好的阅读材料......
对于它的价值,来自 Apple 的一些加速度计样本:
如果你的目标是像 Wolfenstein 3D 的倾斜控制,你可以去阅读源代码...... :-)
您是否正在尝试为 iPhone 构建 3D 鼠标程序?(已经有一些。)你能准确描述你想要什么用户动作对应什么动作吗?
最简单的方法是通过将加速度矢量与 (0, 0, 1000) 的点积取反余弦来获得设备的间距。
如果您尝试实现一种设备,其中在空间中来回滑动 iPhone 会在屏幕上来回移动指针,这将是困难的,因为与重力加速度相比,它需要相对剧烈的手部动作来产生更大的加速度. iPhone 中的 MEMS 加速度计在测量重力方向方面非常出色,但在测量设备本身的实际加速度方面却很差。
如果您稍微描述一下您的应用程序,我或许可以为您提供更具体的指示。
表示空间旋转的方式有很多种,但四元数在游戏编程社区中非常流行。谷歌搜索会为您提供一些引物的链接。GamaSutra 是一个很好的起点。
http://www.gamasutra.com/features/19980703/quaternions_01.htm
http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation
http://www.flipcode.com/documents/matrfaq.html