math - 使用旋转矩阵从 body 轴到地球轴? [OpenGL]

标签 math rotation linear-algebra gyroscope euler-angles

我目前正在开发一个项目,该项目应该将从陀螺仪收集的数据表示为简单的 3D 图形,但我编写的内容不太有效 - 我只是集成了轴,然后旋转了对象。

一直在寻找解决方案并找到了一种称为旋转矩阵的东西,但我不太明白它是如何工作的 - 我猜我需要采用起始角度 [0,0,0] 并将它们转换为这样的矩阵,然后采用陀螺仪数据[偏航,俯仰,滚动]并将它们转换成类似的矩阵,将它们相乘并基于这个新矩阵计算新的角度?每次我使用先前的矩阵作为“基础”获取新的陀螺仪数据包时都重复此操作?

我猜对了吗?我需要的是如何旋转已经旋转的对象,是否有关于这个主题的任何资源?一直在寻找“3d 旋转矩阵”,但不完全是我一直在寻找的......

最佳答案

有关旋转矩阵的教程以及您需要的集成在

Direction Cosine Matrix IMU: Theory

手稿。

长话短说,你不能“简单地整合轴然后旋转对象”,不幸的是它比这更复杂。 :( 不过别担心,手稿会一步步告诉你该怎么做。

欧拉角(又名滚动角、俯仰角和偏航角)是邪恶的,它们会破坏应用程序的稳定性,请参见示例

他们是not useful for interpolation任何一个。只需使用旋转矩阵,您就会很高兴。

关于math - 使用旋转矩阵从 body 轴到地球轴? [OpenGL],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973888/

相关文章:

opencv - 使用单应性估计相机角度

java - LWJGL:根据鼠标位置旋转四边形

java - Java Vector2d 类中的旋转

c++ - 从欠定系统中删除不可解的方程

java - 最小二乘法 3D

objective-c - 返回 CATransform3D 将四边形映射到四边形

python - 像素和几何形状 - Python/PIL

math - 哪个分支更适合编程 : Calculus or Linear Algebra

c# - 我需要一种优雅的方式来标准化标量(某种程度上)

c++ - 有没有更有效的方法来包装 float ?