我能够使用x和y值在X轴上实现2D旋转,但想计算Y轴和Z轴的旋转角度。
下面是我用于计算xAngle旋转的公式。
var xAngle = Math.atan2(x, y)/(Math.PI/180)
其中x和y分别是陀螺仪传感器在x和y轴上提供的重力值。
有人可以通过共享一组类似的yAngle和zAngle计算公式来帮助我吗?
预先感谢!
刚刚自己完成数学运算,您可能需要注意一些警告。
让我们先快速浏览一下轴并使用正确的名称。俯仰,滚动和偏航描述了围绕每个轴的旋转。有关更多信息,请参见https://sidvind.com/wiki/Yaw,_pitch,_roll_camera。
而且,一切都是相对的。传感器可能与一种思维方式有关,而所需的思维方式可能与另一种思维方式有关。
在我的情况下,相对的方面是数位板在横向(横向:左:逆时针旋转90°),然后平放在其背面(直立的俯仰角为90°)。
[我使用的加速度计读数是相对于人像直立的。
相对于重力,无法根据加速度计信息来计算绕y轴的旋转。这意味着:
pitch = Math.atan2(-x, -z) * 180 / Math.PI;// In degrees
roll = Math.atan2(-y, -x) * 180 / Math.PI;// In degrees
yaw = Math.atan2(y, -z) * 180 / Math.PI;// In degrees
pitch = Math.atan2(z, -y) * 180 / Math.PI;// In degrees
roll = Math.atan2(x, -y) * 180 / Math.PI;// In degrees
yaw = Math.atan2(-x, -z) * 180 / Math.PI;// In degrees
您的x轴旋转与这两个方向上的螺距都不匹配(也不会靠近,不带符号),这表明您不是在计算绕x轴的旋转,而是计算x轴绕另一个(大部分)的旋转可能是z轴旋转(滚动)。