我目前正在开发一个项目,该项目应该将从陀螺仪收集的数据表示为简单的 3D 图形,但我编写的内容不太有效 - 我只是集成了轴,然后旋转了对象。
一直在寻找解决方案并找到了一种称为旋转矩阵的东西,但我不太明白它是如何工作的 - 我猜我需要采用起始角度 [0,0,0] 并将它们转换为这样的矩阵,然后采用陀螺仪数据[偏航,俯仰,滚动]并将它们转换成类似的矩阵,将它们相乘并基于这个新矩阵计算新的角度?每次我使用先前的矩阵作为“基础”获取新的陀螺仪数据包时都重复此操作?
我猜对了吗?我需要的是如何旋转已经旋转的对象,是否有关于这个主题的任何资源?一直在寻找“3d 旋转矩阵”,但不完全是我一直在寻找的......
最佳答案
有关旋转矩阵的教程以及您需要的集成在
Direction Cosine Matrix IMU: Theory
手稿。
长话短说,你不能“简单地整合轴然后旋转对象”,不幸的是它比这更复杂。 :( 不过别担心,手稿会一步步告诉你该怎么做。
欧拉角(又名滚动角、俯仰角和偏航角)是邪恶的,它们会破坏应用程序的稳定性,请参见示例
他们是not useful for interpolation任何一个。只需使用旋转矩阵,您就会很高兴。
关于math - 使用旋转矩阵从 body 轴到地球轴? [OpenGL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973888/