我有一个3轴加速度计(任何手机),但我找不到任何好的公式来解释来自它的数据。无论我做什么,动作都是生涩/不敏感的。我读到我还需要欧拉角或旋转矩阵?
我会很感激阅读的任何好材料......
答案 0 :(得分:4)
对于它的价值,来自Apple的一些加速度计样本:
如果你的目标是像Wolfenstein 3D这样的倾斜控制,那么你可以阅读the source code ....: - )
答案 1 :(得分:3)
您是否正在尝试为iPhone构建3D鼠标程序? (已经有一些已经存在。)你能准确描述你想要对应什么行动的用户动作吗?
最简单的方法是通过将加速度矢量的点积的反余弦值设为(0,0,1000)来获得设备的音高。
如果您正在尝试实现一种设备,其中iPhone在空间中来回滑动,在屏幕上来回移动指针,这将是困难的,因为它需要相对剧烈的手部运动来产生比较大的加速度重力加速度。像iPhone这样的MEMS加速度计非常适合测量重力方向,但在测量设备本身的实际加速度方面相当差。
如果您稍微描述一下您的应用程序,我可能会给您更具体的指示。
有许多不同的方式来表示空间旋转,但四元数在游戏编程社区中非常流行。 Google搜索为您提供了一些引导链接。 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