From c40500d288339cd9b2200f8f909e3cd5471c0c22 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 30 八月 2024 17:38:29 +0800 Subject: [PATCH] 1. 优化3D动画中风向的变化逻辑; 2. 修复折线图切换因子时,数据直接跳转至起始处的问题; 3. 折线图和表格加回风向因子; 4. 优化风向的均值计算为矢量计算,同时最大最小值不显示; 5. 新增表格数据导出功能; --- src/model/Factor.js | 39 ++++++++++++++++++++++++++++++++------- 1 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/model/Factor.js b/src/model/Factor.js index 354a585..1aaa149 100644 --- a/src/model/Factor.js +++ b/src/model/Factor.js @@ -194,24 +194,49 @@ if (d1 == undefined || d2 == undefined) { return; } + let diffValue = d2.factorData - d1.factorData; + // 瀵逛簬椋庡悜鐭㈤噺鏉ヨ锛屽姩鐢荤殑鍙樺寲搴旇浠庝袱涓鍚戝す瑙掕緝灏忕殑閭d竴渚ц繘琛屽彉鍖� + if (this.factorName == 'WIND_DIRECTION') { + // 椋庡悜瑙掑害宸� + if (diffValue > 180) { + diffValue -= 360; + } else if (diffValue < -180) { + diffValue += 360; + } + } // 鍗曞抚鏁版嵁鍊肩殑宸�� - var dValue = { - factorData: (d2.factorData - d1.factorData) / count, - physicalQuantity: (d2.physicalQuantity - d2.physicalQuantity) / count + const dValue = { + factorData: diffValue / count + // physicalQuantity: (d2.physicalQuantity - d2.physicalQuantity) / count + }; + + // 椋庡悜鐭㈤噺淇 + const correct = (v) => { + if (this.factorName == 'WIND_DIRECTION') { + if (v < 0) { + return 360 + v; + } else if (v > 360) { + return v - 360; + } else { + return v; + } + } else { + return v; + } }; for (let i = 0; i < count - 1; i++) { var _data = { - factorData: d1.factorData + dValue.factorData * (i + 1), + factorData: correct(d1.factorData + dValue.factorData * (i + 1)), factorId: d1.factorId, factorName: d1.factorName, - physicalQuantity: - d1.physicalQuantity + dValue.physicalQuantity * (i + 1), + // physicalQuantity: + // d1.physicalQuantity + dValue.physicalQuantity * (i + 1), sensorId: d1.sensorId, statusList: d1.statusList }; if (!isDraw) { _data.factorData = -1; - _data.physicalQuantity = -1; + // _data.physicalQuantity = -1; } this.datas.push(_data); } -- Gitblit v1.9.3