起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1980|回复: 1

[分享] 摇一摇控件算法改良建议

[复制链接]

59

主题

184

帖子

428

积分

中级会员

Rank: 3Rank: 3

积分
428
QQ
发表于 2018-9-26 00:40:44 | 显示全部楼层 |阅读模式
今天用到摇一摇控件,感觉对摇动手机动作的识别相当诡异,正常姿势摇动很难触发摇动事件,周围几个朋友试了都有同样的感受,但是如果把摇动幅度加大,频率放慢就容易被识别到,翻转手机容易被识别。但是正常人玩手机摇一摇一般都是拿起手机上下猛摇的动作呀,这种摇法,手摇断了都很难触发到。就考虑是不是实现的算法有问题。
看了一下,原代码对速度的判定是Math.abs(x + y + z - last_x - last_y - last_z)/ diffTime * 10000,然后再比较阈值。


但是xyz三轴的差值,有可能有的是负值,有的是正值,把三个差值先相加再取绝对值的话,有可能本来摇动幅度很大,三轴差值都很大,但因为有正有负,正负相抵,相加的和的绝对值倒反很小。造成速度判断有误。
11111.png

所以改了一下公式,把速度计算公式改(Math.abs(x - last_x) + Math.abs(y - last_y) + Math.abs(z - last_z)) / diffTime * 10000;

感觉摇动识别率好了很多,如果公式这样改的话,经测试,阈值SHAKE_THRESHOLD设为100-110,过滤效果比较好一些。摇动手机需要稍微用点力才会触发。80误触率有点高。

如果觉得我反映的合理的话,建议官方考虑调整一下,顺便给点奖励鼓励下就更好了,哈哈。牛刀云账号 u22773

微信图片_20180926001026.png



195

主题

837

帖子

2288

积分

金牌会员

Rank: 6Rank: 6

积分
2288
QQ
发表于 2018-9-26 20:54:35 | 显示全部楼层
牛人厉害,支持一下,
我的QQ:1731859020
小程序:新酒商
https://www.new999.cn/xinjiushangapp
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-27 04:09 , Processed in 0.057147 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表