123456789101112131415161718192021222324252627282930313233343536 |
- using Aitex.Core.Util;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CyberX8_RT.Devices.Reservoir
- {
- public class LevelCurveManager : Singleton<LevelCurveManager>
- {
- /// <summary>
- /// 计算Level
- /// </summary>
- /// <param name="waterLevel"></param>
- /// <param name="levelCurve"></param>
- /// <returns></returns>
- public double CalculateLevelByWaterLevel(double waterLevel,string levelCurve)
- {
- string[] strAry= levelCurve.Split(',');
- if (strAry.Length >= 3)
- {
- double.TryParse(strAry[strAry.Length - 1], out double c);
- double.TryParse(strAry[strAry.Length-2], out double b);
- double.TryParse(strAry[strAry.Length-3], out double a);
- return a*Math.Pow(waterLevel,2)+b*waterLevel+c;
- }
- else
- {
- return 0;
- }
- }
- }
- }
|