2014-09-04 1527 views
0

我正在尝试在3D中旋转模型以使其面向正确的方向。我想要的旋转相当平凡,可以分解为两个步骤:如何计算旋转轴和角度?

  1. 在x轴上旋转模型90度。
  2. 将模型在z轴上旋转180度(相对于第一次旋转)。

在我使用的框架(openFrameworks)中设置模型旋转的方法是调用setRotation方法。此方法需要一个角度,以及浮动指定旋转轴的x,y和z。如何计算此特定旋转的旋转轴和角度?我无法顺序旋转模型两次,因为任何对setRotation的调用都会覆盖之前的旋转。

如果我可以提供更多信息或清晰度,请让我知道。

编辑:如果有人有同样的问题,这个职位helped me a lot

+0

信息的链接被打破了。这就是为什么实际包含/总结本网站上的内容的原因。 – ray 2017-02-23 19:01:56

回答

1

奇怪的是,你不能申请多一个转换...也许你只是用错功能,但无论如何:

如果你有直达变换矩阵(或获取,设置)

  1. 谷歌的转换矩阵,如果你不具备的知识
  2. 产生第一腐通货膨胀矩阵,并将其存储到M1
    • 可以使用setRotation对于
  3. 产生第二旋转矩阵,并将其存储到M2
  4. 它们乘以M=M1*M2
  5. 使用本M代替setRotation

如果你没有直接访问变换矩阵,必须只使用setRotation

  • 在这种情况下,你必须使用它的4D矢量与您通话
  • 谷歌为四元数的数学的setRotation四元数,找到的2转的应用
  • 我不使用他们所以我不能与帮助,但也有方程在那里
  • 其3x3的旋转矩阵转换为四元数和背部
  • 所以你仍然可以使用上面
  • 算法获得M
  • 从中提取旋转矩阵(这是您省略最后一排和列刚子矩阵)
  • 计算四元数从它
  • 并调用setRotation,结果