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