今天就跟大家聊聊有關(guān)微信小程序開發(fā)中如何使用移動(dòng)平均消除抖動(dòng),可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
為臨潭等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及臨潭網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站建設(shè)、臨潭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
增加了表盤的圖形顯示以后,這個(gè)小程序看起來是那么回事了。但是還有一個(gè)小毛病,數(shù)字也好,表盤的旋轉(zhuǎn)速度,都不是很均勻。今天就來解決這個(gè)問題。
簡單移動(dòng)平均法
移動(dòng)平均的計(jì)算公式如下: Ft=(At-1+At-2+At-3+…+At-n)/n,式中
Ft--對(duì)下一期的預(yù)測(cè)值;
n--移動(dòng)平均的時(shí)期個(gè)數(shù);
At-1,At-2,At-3和At-n分別表示前兩次、前三次直至前n期的實(shí)際值。
簡單的說,就是保留最近n次的值,然后求這些值的平均值。這樣一來個(gè)別數(shù)據(jù)的抖動(dòng)就會(huì)被其他數(shù)據(jù)中和,從而減少數(shù)據(jù)的抖動(dòng)。
logs.js
Page({
data: {
angle: '--',
directions:[0, 0, 0, 0, 0]
},
//指南針描畫
drawCompass: function (direction) {
//此處省略
},
//事件處理函數(shù)
onLoad: function () {
var that = this;
wx.onCompassChange(function (res) {
//在數(shù)組尾部添加新數(shù)據(jù)
that.data.directions.push(res.direction);
//從數(shù)組頭部刪除一個(gè)數(shù)據(jù)
that.data.directions.shift();
//數(shù)組元素求和
var total = that.data.directions.reduce(function (prev, v) { return prev + v })
//求平均值
var average = total / that.data.directions.length
that.drawCompass(average);
//保留1位小數(shù)
var direction = average.toFixed(1) + '°';
that.setData({ angle: direction })
});
},
})
主要的變化有兩點(diǎn):一個(gè)是在data中增加了一個(gè)名為directions的數(shù)組,并用5個(gè)0初始化;再有就是在 wx.onCompassChange中增加了計(jì)算移動(dòng)平均的處理,詳細(xì)可以參考注釋。
看完上述內(nèi)容,你們對(duì)微信小程序開發(fā)中如何使用移動(dòng)平均消除抖動(dòng)有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
分享標(biāo)題:微信小程序開發(fā)中如何使用移動(dòng)平均消除抖動(dòng)
分享地址:http://www.chinadenli.net/article39/jogpph.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、網(wǎng)站維護(hù)、虛擬主機(jī)、自適應(yīng)網(wǎng)站、云服務(wù)器、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)