12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- class Filter {
- N = 4
- num = 10
- dataArray = null
- // 初始化
- constructor() {
- this.dataArray = []
- }
- // 初始化队列
- initQueue() {
- this.dataArray = []
- }
- // 在队列首插入队列
- addQueueFront(value) {
- this.dataArray.unshift(value)
- }
- // 队列求和
- sumQueue() {
- let sum = 0
- for (let index = 0; index < this.N; index++) {
- sum += this.dataArray[index]
- }
- return sum
- }
- Smoothing_arithmetic_mean_FILTER() {
- let m = 0
- let re = 0
- let adder = 0
- for (let i = 0; i < this.N; i++) {
- if (this.dataArray[i] > 0) {
- adder += this.dataArray[i]
- m++
- }
- }
- if (m >= this.N) {
- re = this.sumQueue() / this.N
- } else {
- re = adder / m
- }
- return re
- }
- }
- //
- function joinTogether(x, fx) {
- return x + fx / 100
- }
- const dataFilterX = new Filter()
- const datafilterY = new Filter()
- function smooth(dot) {
- let dotX = joinTogether(dot.x, dot.fx)
- let dotY = joinTogether(dot.y, dot.fy)
- if (dot.dotType === 'PEN_DOWN') {
- dataFilterX.initQueue()
- datafilterY.initQueue()
- dataFilterX.addQueueFront(dotX)
- // console.log(dataFilterX.dataArray);
- datafilterY.addQueueFront(dotY)
- // console.log(datafilterY.dataArray);
- let dotAx = dataFilterX.Smoothing_arithmetic_mean_FILTER()
- let dotAy = datafilterY.Smoothing_arithmetic_mean_FILTER()
- return {
- ...dot,
- ab_x: dotAx,
- ab_y: dotAy
- }
- } else if (dot.dotType === "PEN_MOVE" && dot.force !== 1 && dot.force !== 2) {
- dataFilterX.addQueueFront(dotX)
- // console.log(dataFilterX.dataArray);
- datafilterY.addQueueFront(dotY)
- // console.log(datafilterY.dataArray);
- let dotAx = dataFilterX.Smoothing_arithmetic_mean_FILTER()
- let dotAy = datafilterY.Smoothing_arithmetic_mean_FILTER()
- return {
- ...dot,
- ab_x: dotAx,
- ab_y: dotAy
- }
- } else if (dot.tydotTypepe == "PEN_UP" || dot.force === 2 || dot.force === 1 || dot.force === 0) {
- let dotAx = dotX
- let dotAy = dotY
- return {
- ...dot,
- ab_x: dotAx,
- ab_y: dotAy
- }
- }
- }
- export default smooth
|