private void DrawGray() { double[] IntensityData = NeuronDataManager.Neurons[0].IntensityCleanData.ToArray(); int L = NeuronDataManager.Neurons[0].IntensityCleanData.Count; int N = NeuronDataManager.Neurons.Count; List <List <double> > AllData = GetNormalisedData(); //List<List<List<PointD>>> TMP = GetNormalisedSparkles(); GraphPane pane = ZDC_ColorMap.GraphPane; pane.CurveList.Clear(); pane.XAxis.Scale.Max = L + 50; PointPairList list; LineItem myCurve = new LineItem(""); myCurve.Line.Width = 1.0F; double lambda; //Grays double [] indexes; int Left = 0; int Right = 1; for (int i = 0; i < N; i++) { // точки до первой вспышки list = new PointPairList(); myCurve.Line.Width = 2.0F; IntensityData = AllData[i].ToArray(); for (int k = 0; k <= NeuronDataManager.Neurons[i].SparkleIndexes[0][0]; k++) { list.Add(k, IntensityData[k]); } list.Add(PointPairBase.Missing, PointPairBase.Missing); myCurve = pane.AddCurve("", list, Color.Gray, SymbolType.None); // lambda = i * (740 - 380) / N + 380; for (int j = 1; j < NeuronDataManager.Neurons[i].SparkleIndexes.Count; j++) { myCurve.Line.Width = 1.0F; list = new PointPairList(); indexes = NeuronDataManager.Neurons[i].SparkleIndexes[j - 1]; Left = (int)indexes[0]; Right = (int)indexes[1]; for (int k = Left; k <= Right && (k < L); k++) { list.Add(k, IntensityData[k]); } list.Add(PointPairBase.Missing, PointPairBase.Missing); myCurve = pane.AddCurve("", list, Colors.waveToColor(lambda), SymbolType.None); myCurve.Line.Width = 2.0F; list = new PointPairList(); indexes = NeuronDataManager.Neurons[i].SparkleIndexes[j]; Left = (int)indexes[0]; //Right = (int)indexes[0]; for (int k = Right + 1; k < Left && (k < L); k++) { list.Add(k, IntensityData[k]); } list.Add(PointPairBase.Missing, PointPairBase.Missing); myCurve = pane.AddCurve("", list, Color.Gray, SymbolType.None); } } ZDC_ColorMap.AxisChange(); ZDC_ColorMap.Invalidate(); }