gpt4 book ai didi

javascript - 了解从 JS 中的 event.acceleration 接收到的设备运动数据

转载 作者:行者123 更新时间:2023-11-30 12:54:42 25 4
gpt4 key购买 nike

当在 javascript 中触发“devicemotion”事件时,我无法完全理解从移动设备返回的信息。我假设我会回来的与我所看到的不符,甚至我所看到的似乎也不一致。

所以我知道 devicemotion 事件有一个 X、Y 和 Z 组件,它记录了沿手机轴的移动。我的假设是这些数字将记录设备在一个方向上的运动,运动越大返回的数字越大。因此,例如,如果相机向左移动,我会得到一个负 X 值,而向右移动则会给我一个正值。

很快就发现这不是真的。我现在假设(根据我在控制台记录的数字)此事件仅测量沿轴的速度变化。所以不知道向左或向右移动,我只知道设备是沿 x 轴移动的,并且自从最后一次偶数触发以来,速度已经改变了返回的量。所以我看到的正面和负面实际上与速度的正面或负面变化有关。

这样理解正确吗?如果是这样,这是否意味着没有办法收集方向信息,只知道变化发生在一个轴或另一个轴上?

谢谢。

最佳答案

DeviceMotionEvent 返回(除其他外)以 m/s^2 为单位的加速度。如果您朝一个方向加速移动,它将返回一个正值。如果您沿同一方向以恒定速度移动,加速度将返回 0(请注意,由于加速度计的灵敏度,这实际上是不可能的,您将始终看到 0 左右的值,而不是恰好为 0)。如果你在同一个方向减速,但仍在移动,你将从加速度中得到一个负值。让事情变得更复杂的是,如果你朝相反的方向移动,你会在加速时得到负值,在减速时得到正值。这使您可以区分向上(= 正加速度,沿 Y 轴)或向下(= 负加速度,沿 Y 轴)和向右(= 正加速度,沿 X 轴)或向左( = 沿 X 轴的负加速度)。

如果您想知道设备向哪个方向移动,您将必须捕获一段时间内的所有加速度测量值并据此计算方向,例如如果 Y 加速度开始为正,则设备必须向上移动,直到您检测到沿 Y 的负加速度完全抵消了初始加速度。

关于javascript - 了解从 JS 中的 event.acceleration 接收到的设备运动数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19627392/

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