gpt4 book ai didi

javascript - React Native : How to compute x, y 和 z 轴旋转 Angular 基于陀螺仪传感器输出?

转载 作者:行者123 更新时间:2023-11-28 03:27:15 27 4
gpt4 key购买 nike

我能够使用 x 和 y 值在 X 轴上实现 2D 旋转,但想要计算 Y 轴和 Z 轴旋转 Angular 。

下面是我用来计算 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 轴的旋转无法根据加速度计信息计算出来。这意味着:

  • 纵向和直立时无法计算间距
  • 平放在 table 上时无法计算滚动
  • 横向和直立时无法计算偏航
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

假设传感器和所需的思维方式匹配

  • 横向和直立时无法计算间距
  • 平放在 table 上时无法计算滚动
  • 纵向和直立时无法计算偏航
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 轴旋转(滚动)。

关于javascript - React Native : How to compute x, y 和 z 轴旋转 Angular 基于陀螺仪传感器输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58521498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com