提问者:小点点

将三分量Android旋转矢量变换为(四分量)四元数


我正在尝试实现以下应用程序:

我将智能手机的3分量Android旋转矢量流到我的电脑,其中一个对象以Unity显示,并应根据智能手机的旋转进行旋转。

如何将三分量Android旋转向量转换为四元数,以便在3D应用程序中使用,例如在Unity中?


共1个答案

匿名用户

Android旋转矢量要么由三个组件组成,要么由四个组件组成(因为一个是多余的!)。 我将描述如何定义一个四元数,给定Android旋转向量的3分量表示。

旋转向量的三个元素等于单位四元数的*最后三个分量:

< q0, q1, q2, q3 > = < (θ/2), xsin(θ/2), ysin(θ/2), z*sin(θ/2) >

因为它是一个单位四元数(它的长度等于1),所以我们可以从剩下的三个中推断出第一个四元数值q0

我们知道

1 = |q| = sqrt( q0^2 + q1^2 + q2^2 + q3^2 )

我们可以把它变成

q0 = sqrt( 1 - q1^2 - q2^2 - q3^2 ) 

好啦,我们找到了。 第四个四元数分量Q0

相关问题