Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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;
        }