首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JS中理解从event.acceleration接收到的设备运动数据

在JS中理解从event.acceleration接收到的设备运动数据
EN

Stack Overflow用户
提问于 2013-10-28 04:54:34
回答 1查看 1.6K关注 0票数 1

当javascript中触发“devicemotion”事件时,我很难完全理解从移动设备返回的信息。我以为我会回来的东西与我所看到的不相符,甚至我所看到的似乎也不一致。

所以我知道设备情感事件有一个X,Y和Z成分,它记录手机的轴向运动。我的假设是,这些数字将是设备向一个方向移动的寄存器,较大的移动会返回更大的数字。举个例子,如果相机向左移动,我会得到一个负的X值,右边会给我一个正的。

很快就明白了,这不是真的。我现在假设(根据我记录的控制台数字),这个事件只测量沿轴的速度变化。所以不知道向左或向右移动,我只知道设备是沿着x轴移动的,而且自从上次触发以来,速度已经改变了返回的数量。所以,我所看到的积极和消极因素实际上与速度的积极或消极变化有关。

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-27 18:52:34

DeviceMotionEvent返回m/s^2中的加速度(除其他外)。如果你加速向一个方向移动,它将返回一个正值。如果你以相同的方向以恒定的速度移动,加速度将返回0 (注意,由于加速度计的灵敏度,这实际上是不可能的,你总是会看到0附近的值,永远不会是0)。如果你沿着同样的方向减速,但仍然在移动,你会从加速中得到一个负值。让事情变得更复杂的是,如果你向相反的方向移动,如果你加速,你会得到负值,如果你减速,你会得到正值。这允许您区分设备向上(=正加速度,沿Y轴)或向下(沿Y轴方向为负加速度)和右侧(沿X轴方向为正加速度)或左侧(沿X轴为负加速度)。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19627392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档