Esempio n. 1
0
        public bool f_设置汽蚀余量(string 曲线编号, double 汽蚀余量, List <double> X坐标对集合, List <double> Y坐标对集合)
        {
            NationalInstruments.UI.ScatterPlot 曲线变量 = null;
            string        汽蚀余量编号   = 曲线编号 + "_汽蚀余量";
            List <double> 曲线X坐标对集合 = new List <double>();
            List <double> 曲线Y坐标对集合 = new List <double>();
            double        maxX     = -1;
            double        maxY     = -1;

            List <double> 汽蚀余量X = new List <double>();
            List <double> 汽蚀余量Y = new List <double>();

            曲线X坐标对集合 = X坐标对集合;
            曲线Y坐标对集合 = Y坐标对集合;

            while (曲线Y坐标对集合.Count > 0)
            {
                int index = 公共函数.List_最大值序号(曲线X坐标对集合);
                if (曲线X坐标对集合[index] < (汽蚀余量))
                {
                    if (maxX != -1)
                    {
                        double 汽蚀余量y = ((maxY - 曲线Y坐标对集合[index]) / (maxX - 曲线X坐标对集合[index]) * (汽蚀余量 - 曲线X坐标对集合[index])) + 曲线Y坐标对集合[index];
                        汽蚀余量X.Add(汽蚀余量);
                        汽蚀余量Y.Add(汽蚀余量y);
                        汽蚀余量X轴 = 汽蚀余量;
                        汽蚀余量Y轴 = 汽蚀余量y;
                    }

                    break;
                }
                else
                {
                    maxX = 曲线X坐标对集合[index];
                    maxY = 曲线Y坐标对集合[index];
                    曲线X坐标对集合.Remove(曲线X坐标对集合[index]);
                    曲线Y坐标对集合.Remove(曲线Y坐标对集合[index]);
                }
            }

            if (((曲线编号 != null) && 汽蚀余量存储.ContainsKey(汽蚀余量编号)) &&
                ((汽蚀余量X.Count > 0) && (汽蚀余量Y.Count > 0)))
            {
                曲线变量         = (NationalInstruments.UI.ScatterPlot)汽蚀余量存储[汽蚀余量编号];
                曲线变量.Visible = true;
                曲线变量.PlotXY(汽蚀余量X.ToArray(), 汽蚀余量Y.ToArray());
                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        public bool f_设置临界值(string 曲线编号, List <double> X坐标对集合, List <double> Y坐标对集合)
        {
            NationalInstruments.UI.ScatterPlot 曲线变量 = null;
            string 汽蚀余量编号 = 曲线编号 + "_临界点";

            曲线变量 = (NationalInstruments.UI.ScatterPlot)汽蚀余量存储[汽蚀余量编号];
            if ((X坐标对集合[0] == 0) || (Y坐标对集合[0] == 0))
            {
                曲线变量.Visible = false;
                return(false);
            }
            曲线变量.Visible = true;
            曲线变量.PlotXY(X坐标对集合.ToArray(), Y坐标对集合.ToArray());
            return(true);
        }
Esempio n. 3
0
        public void PaintWave(decimal groupid, string 列名, NationalInstruments.UI.ScatterPlot p)
        {
            string    sql = string.Format("select 流量,{0} from 潜水泵性能试验 where groupid={1}", 列名, groupid);
            DataTable tb  = 数据库操作类.GetTableBySql(sql);
            int       len = tb.Rows.Count;

            double[] _x = new double[len];
            double[] _y = new double[len];
            for (int i = 0; i < len; i++)
            {
                _x[i] = System.Convert.ToDouble(tb.Rows[i]["流量"].ToString());
                _y[i] = System.Convert.ToDouble(tb.Rows[i][列名].ToString());
            }
            this.设置X轴(_x);
            p.PlotXY(_x, _y);
        }