Math 如何计算旋转轴和角度?
我试图在3D中旋转模型,使其朝向正确的方向。我想要的旋转非常简单,可以分为两个步骤:Math 如何计算旋转轴和角度?,math,3d,openframeworks,Math,3d,Openframeworks,我试图在3D中旋转模型,使其朝向正确的方向。我想要的旋转非常简单,可以分为两个步骤: 将模型绕其x轴旋转90度 将模型沿z轴旋转180度(相对于第一次旋转) 在我使用的框架(openFrameworks)中设置模型旋转的方法是调用其setRotation方法。此方法采用一个角度,并浮动指定旋转轴的x、y和z。如何计算此特定旋转的旋转轴和角度?我无法按顺序旋转模型两次,因为对setRotation的任何调用都会覆盖以前的旋转 请让我知道,如果我可以提供更多的信息或清晰度 编辑:如果有人有同样的问题
编辑:如果有人有同样的问题,请发这篇文章。奇怪的是,你不能应用多个转换。。。也许您只是使用了错误的函数,但无论如何: 如果您可以直接访问变换矩阵(或通过get、set)
- 我怀疑您使用的是4x4同质笛卡尔变换矩阵
M1
- 可以使用setRotation进行此操作
M2
M=M1*M2
M
代替设置旋转- 在这种情况下,你必须使用四元数,这是你称之为setRotation的4D向量
- 谷歌四元数数学,并找到2个旋转的应用
- 我不使用它们,所以我不能帮助解决这个问题,但也有一些方程式
- 将3x3旋转矩阵转换为四元数并返回
- 所以你仍然可以使用上面的算法
- 获得
M
- 从中提取旋转矩阵(只是省略最后一行和最后一列的子矩阵)
- 从中计算四元数
- 并调用setRotation以获得结果