陀螺仪高级开发文档

修改于2019/05/10348 浏览游戏作品展示
我的战舰-陀螺仪高级开发文档
文档号:190503B
单位:铸器阁
作者:兜兜里木有糖
ID:774394436971846710
版本号:2018-4-19
返回值=重力感应(X,Y,Z),
x,y,z均为小数,每一位范围均为(-1,1)
.重力感应向量如何确定手机状态?我们可以阅读电子陀螺仪的相关资料,http://www.elecfans.com/article/88/142/2017/20171031572822.html
也可以自己建立相关模型进行拟合解释,可以使用即可
记手机中心点为p0,
TapTap
设该状态为手机初始状态(0,0,-1)
记此刻
左面(左)几何中心点为Px
前面(正)几何中心点为Py
下面(底)几何中心点为Pz
设p0的高度为h0
设Px的高度为hx,与p0的高度差最大为Hx
设Py的高度为hy,与p0的高度差最大为Hy
设Pz的高度为hz,与p0的高度差最大为Hz
x=(hx-h0)/Hx
y=(hy-h0)/Hy
z=(hz-h0)/Hz
这样我们就可以完美拟合陀螺仪返回参数
例如当手机右倾时,
TapTap
左面中心点高度上升,手机中心点高度不变
x=(hx-h0)/Hx,得到一个正的,小于一的数。
手机左倾,左面中心点高度小于手机中心点,所以hx-h0)<0,得x<0
同理我们任意选取手机的一个姿态,分别估算出x,y,z的值,就可得到确定的重力感应方向,
知道一个重力感应方向就能找出确定的手机姿态,从而来进行确定的方法操作。
加速度=(x,y,z)均为小数,反应手机运动状态,由于很少用到只做简单的介绍X>0,右移动,x<0,左移动(这个并不重要,没什么用)。如果想要用加速度,在机械编辑页面打开功能后调试,同时进行录屏,对手机进行特定的动作,比如微信的摇一摇,静止后,小心翼翼关闭录屏。用可以慢放的软件打开视频选取一段较为理想的一组加速度,分别作出x/t,y/t,z/t的折线图尝试用几个特征点代替这组加速度。我们就得到了一组几个标准加速度来代替这个摇一摇动作。使用这个功能的时候进行多重if(如果)进行判断,是否拟合第一个特征点,第二个特征点?第三个特征点,当全都为真,说明玩家进行了摇一摇动作。(利用小数计算中的约等于分别判断各分量是否拟合,全为真时,特征点拟合)。关于防抖和用户适应问题请看初级文档190503Ahttps://docs.qq.com/doc/DTkVlVUNpY1FDVHlx?disableReturnList=1&_from=1&subDomain=300000000&localPadId=NEeUCicQCTyq&id=DTkVlVUNpY1FDVHlx
编者注:如有不当之处,还请斧正,感激不尽。关于加速度的使用并未写的很详细,以后出教学视频会完善,会有实例。不过,如果你能认真看完的话,理解并开发一定不成问题,上面的解决方案足够。
4
6
7