当我有两个方向四元数时,如何找到从一个到另一个所需的旋转四元数?

时间:2012-01-08 20:43:00

标签: quaternions gml

我在游戏中使用四元数,我想知道当我有两个方向四元数时,我可以得到从第一个q1到第二个q2所需的旋转四元数。 我是自学成才,因此我的词汇中可能缺少明显的解决方案。

在方程式中,当我从第一个旋转到另一个时,我正在做的事情如下: q2 = r * q1

然而,现在r是未知数。这里的代数规则也算吗?如果是这样的话,我最终会将四元数除以另一个,这是我在互联网上找不到的好解释。

我正在使用一个名为游戏制作者的程序

2 个答案:

答案 0 :(得分:10)

为了用四元数“除”,你将它反转,使它成为相反的旋转。为了反转四元数,你否定 w 组件或( x y z )组件,但不是两个,因为这将使您开始使用相同的四元数(完全否定的四元数表示相同的旋转)。

然后,请记住四元数不是可交换的。所以:

q2 = r*q1
q2*q1' = r

q1'是反转的四元数,必须在q2的右侧乘以才能得到正确的结果。

答案 1 :(得分:5)

你应该看看这个page(欧几里得空间),这对自我教学和理解四元数非常有用。

在这里你有四元数的算术,还有一个计算器,可以为你做手术:

http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/arithmetic/index.htm

希望它有所帮助。