/// <summary> /// 处理保证点性能参数测试结果的逻辑代码 /// </summary> /// <param name="_额定流量">保证点的X坐标</param> /// <param name="_额定扬程">保证点的Y坐标</param> private 交点坐标 f_计算保证点性能参数流量扬程点测试结果(double _额定流量, double _额定扬程, string 需要进行绘制的曲线ID) { 交点坐标 point = new 交点坐标(); for (int j = 0; j < this.xyGraph1.Graph.Plots.Count; j++) { if (this.xyGraph1.Graph.Plots[j].Tag.ToString().Equals(需要进行绘制的曲线ID)) { List <差值单元项> 统计差值集合 = new List <差值单元项>(); double[] xData = this.xyGraph1.Graph.Plots[j].GetXData(); double[] yData = this.xyGraph1.Graph.Plots[j].GetYData(); double 斜率 = _额定扬程 / _额定流量; // 根据HQ曲线的分割点数计算所有的Y值与直线Y值的差 for (int i = 0; i < this.xyGraph1.Graph.Plots[j].HistoryCount; i++) { 差值单元项 _差值集合 = new 差值单元项(); _差值集合.差值 = Math.Abs(xData[i] * 斜率 - yData[i]); _差值集合.序号 = i; 统计差值集合.Add(_差值集合); } // 找出差值最小的点,即两线交汇的误差最小点 double 最小差值 = 统计差值集合.Min(item => item.差值); 差值单元项 差值单元项 = 统计差值集合.Find(item => item.差值 == 最小差值); point.X = xData[差值单元项.序号]; point.Y = yData[差值单元项.序号]; return(point); } } return(point); }
/// <summary> /// 处理保证点性能参数测试结果的逻辑代码 /// </summary> /// <param name="_额定流量">保证点的X坐标</param> /// <param name="_额定扬程">保证点的Y坐标</param> private 交点坐标 f_计算保证点性能参数流量扬程点测试结果(double _额定流量, double _额定扬程, string 需要进行绘制的曲线ID) { 交点坐标 point = new 交点坐标(); for (int j = 0; j < this.xyGraph1.Graph.Plots.Count; j++) { if (this.xyGraph1.Graph.Plots[j].Tag.ToString().Equals(需要进行绘制的曲线ID)) { List<差值单元项> 统计差值集合 = new List<差值单元项>(); double[] xData = this.xyGraph1.Graph.Plots[j].GetXData(); double[] yData = this.xyGraph1.Graph.Plots[j].GetYData(); double 斜率 = _额定扬程 / _额定流量; // 根据HQ曲线的分割点数计算所有的Y值与直线Y值的差 for (int i = 0; i < this.xyGraph1.Graph.Plots[j].HistoryCount; i++) { 差值单元项 _差值集合 = new 差值单元项(); _差值集合.差值 = Math.Abs(xData[i] * 斜率 - yData[i]); _差值集合.序号 = i; 统计差值集合.Add(_差值集合); } // 找出差值最小的点,即两线交汇的误差最小点 double 最小差值 = 统计差值集合.Min(item=>item.差值); 差值单元项 差值单元项 = 统计差值集合.Find(item => item.差值 == 最小差值); point.X = xData[差值单元项.序号]; point.Y = yData[差值单元项.序号]; return point; } } return point; }