gpt4 book ai didi

Javascript "bump"识别(移动设备)

转载 作者:行者123 更新时间:2023-11-30 00:21:23 25 4
gpt4 key购买 nike

我需要一个简单的解决方案来识别移动网络应用程序中的“凸起”。目前是这样的:

waitForBump = function () {
if (window.DeviceMotionEvent != undefined) {
window.addEventListener("devicemotion", accelerometerUpdate, true);
}
}

accelerometerUpdate = function(e) {
var aX = e.accelerationIncludingGravity.x * 1;
var aY = e.accelerationIncludingGravity.y * 1;
var aZ = e.accelerationIncludingGravity.z * 1;

if ((aX * aY * aZ) >= 1000) { // here is the point!
bump();
}
}

bump = function() {
window.removeEventListener("devicemotion", accelerometerUpdate, true);

// do something...
}

感谢任何有关搜索正确算法的帮助或提示!

最佳答案

通过使用引用值比较加速度得到了更好的东西:

waitForBump = function () {
if (window.DeviceMotionEvent != undefined) {
window.addEventListener("devicemotion", accelerometerUpdate, true);
}
}

var kFilteringFactor = 0.1;

var accX = null;
var accY = null;
var accZ = null;

accelerometerUpdate = function(e) {
var prevAccX = accX;
var prevAccY = accY;
var prevAccZ = accZ;

var aX = e.accelerationIncludingGravity.x * 1;
var aY = e.accelerationIncludingGravity.y * 1;
var aZ = e.accelerationIncludingGravity.z * 1;

accX = aX - ((aX * kFilteringFactor) + (accX * (1.0 - kFilteringFactor)));
accY = aY - ((aY * kFilteringFactor) + (accY * (1.0 - kFilteringFactor)));
accZ = aZ - ((aZ * kFilteringFactor) + (accZ * (1.0 - kFilteringFactor)));

if (prevAccX == null || prevAccY == null || prevAccZ == null) return;

var deltaX = Math.abs((accX - prevAccX)) * kFilteringFactor;
var deltaY = Math.abs((accY - prevAccY)) * kFilteringFactor;
var deltaZ = Math.abs((accZ - prevAccZ)) * kFilteringFactor;

if (deltaX > 2 || deltaY > 2 || deltaZ > 2) bump();
}

bump = function() {
window.removeEventListener("devicemotion", accelerometerUpdate, true);

accX = null;
accY = null;
accZ = null;

// do something
}

对于我来说,比较大于 2 的增量就足够了。将此值设置为适当的阈值,您就可以开始了!

关于Javascript "bump"识别(移动设备),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994529/

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