private void ColorPaletteChannelEditor_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     if (_adorner != null)
     {
         if (_adorner.InEdit)
         {
             PointSeries pp1 = _adorner.GetEditedPoints();
             PointSeries pp0 = _adorner.GetOriginalPoints();
             _adorner.EndEdit();
             ReleaseMouseCapture();
             Palette.UpdateControlPoints(Channel, pp1);
             e.Handled      = true;
             Tracker.IsOpen = false;
             UndoRedo.PushUndo(new UndoObject(
                                   "edit " + Channel.ToString() + " channel.",
                                   new UndoContext(new PointSeries(pp0), new PointSeries(pp1)),
                                   (uc) =>
             {
                 Palette.UpdateControlPoints(Channel, uc[0] as PointSeries);
                 InvalidateVisual();
                 return(uc);
             },
                                   (rc) =>
             {
                 Palette.UpdateControlPoints(Channel, rc[1] as PointSeries);
                 InvalidateVisual();
             }));
         }
         else if (_adorner.InSelection)
         {
             _adorner.EndSelection();
             ReleaseMouseCapture();
         }
     }
 }
Ejemplo n.º 2
0
        public SpectrumFitForm(ISpectrum selectedSpectrum, ICollection <ISpectrum> spectra, SpectrumFitFormControls buttons)
        {
            InitializeComponent();
            theoreticalCurves = new List <Series>();
            seriesColors      = new List <Color>();
            this._buttons     = buttons;

            try
            {
                int dataLength = spectra.Max(s => s.DataLength);
                this.experimentSeries = new PointSeries(dataLength, Evel.engine.SpectraContainerBase.EXP_LITERAL, chart1, Color.Red, 1);
                this.residualsSeries  = new PointSeries(dataLength, Evel.engine.SpectraContainerBase.EXP_LITERAL, chart2, Color.BlueViolet, 1);

                foreach (ISpectrum spectrum in spectra)
                {
                    spectraSelector.Items.Add(spectrum.Name);
                }
                this._spectra = new ISpectrum[spectra.Count];
                spectra.CopyTo(this._spectra, 0);
                if (selectedSpectrum == null || !spectra.Contains(selectedSpectrum))
                {
                    selectedSpectrum = _spectra[0];
                }
                button2.Visible              = (_buttons & SpectrumFitFormControls.FitAgain) == SpectrumFitFormControls.FitAgain;
                spectraSelector.Visible      = (_buttons & SpectrumFitFormControls.SpectraSelector) == SpectrumFitFormControls.SpectraSelector;
                button1.Visible              = (_buttons & SpectrumFitFormControls.Ok) == SpectrumFitFormControls.Ok;
                spectraSelector.SelectedItem = selectedSpectrum.Name;
            }
            catch (Exception)
            { }
        }
        private void Paste(object sender, ExecutedRoutedEventArgs e)
        {
            PointSeries ps = PointSeriesConverter.GetClipboard();

            if (ps != null)
            {
                IPointSeries pp1 = PointSeries.Union(_controlPoints, ps);
                UndoRedo.PushUndo(new UndoObject(
                                      "paste " + Channel.ToString() + " points.",
                                      new UndoContext(new PointSeries(_controlPoints), new PointSeries(pp1)),
                                      (uc) => {
                    Palette.UpdateControlPoints(Channel, uc[0] as PointSeries);
                    InvalidateVisual();
                    return(uc);
                },
                                      (rc) =>
                {
                    Palette.UpdateControlPoints(Channel, rc[1] as PointSeries);
                    InvalidateVisual();
                }));
                Palette.UpdateControlPoints(Channel, pp1);
                _controlPoints = Palette.GetControlPoints(Channel);
                InvalidateVisual();
                _adorner.ClearSelection();
            }
        }
Ejemplo n.º 4
0
        public PointSeries GetControlPoints(ColorChannel channel, ColorSpace space = ColorSpace.sRGB)
        {
            PointSeries         pp     = new PointSeries();
            Func <Color, float> getter = ColorSupport.ChannelGetter(channel, space);

            foreach (PaletteEntry entry in this)
            {
                pp.Add(new Point((double)entry.Index, getter(entry.Color)));
            }

            return(pp);
        }
Ejemplo n.º 5
0
        public void TestGetSetControlPoints()
        {
            ColorPalette ut = new ColorPalette(_fixture.GreyColors);
            IPointSeries p  = ut.GetControlPoints(ColorChannel.Blue);

            Assert.NotNull(p);
            Assert.Equal(2, p.Count);
            PointSeries ps = new PointSeries(p);

            ps.Add(new Point(128.0, 0.0));
            ut.UpdateControlPoints(ColorChannel.Blue, ps);
            Assert.Equal(0, ut.Colors[100].B);
            Assert.Equal(255, ut.Colors[255].B);
            IPointSeries p1 = ut.GetControlPoints(ColorChannel.Blue, 5e-3f);

            Assert.Equal(3, p1.Count);
        }
Ejemplo n.º 6
0
 public DefaultAdjusterGUI(List <ISpectrum> spectra, ISpectrum adjustingSpectrum)
 {
     InitializeComponent();
     _adjusters      = new List <ValueAdjuster>();
     _mouseAdjusters = new Dictionary <MouseButtons, ValueAdjuster>();
     //this._container = container;
     this._spectra  = spectra;
     this._spectrum = adjustingSpectrum;
     this.pseries   = new PointSeries(adjustingSpectrum.DataLength, adjustingSpectrum.Name, chart1, Color.Red, 1);
     //chartings.ISeries series = chart1.Series["Series1"];
     //series.Clear();
     for (int ch = adjustingSpectrum.BufferStartPos; ch <= adjustingSpectrum.BufferEndPos; ch++)
     {
         pseries.AddPoint(ch - adjustingSpectrum.BufferStartPos, adjustingSpectrum.Container.Data[ch], false);
     }
     this.zoomClick = false;
     chart1.AddSeries(pseries);
     chart1.Title = adjustingSpectrum.Name;
     chart1.Invalidate();
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Plotting a vector into  new window for 2D function with MindFusion.
        /// </summary>
        /// <param name="drawingVector">
        /// The vector to be drawn into the graph.
        /// The x axis is the size of the vecor.
        /// The y axis is the vector.
        /// </param>
        public void MindFusionPlotFunction(Vector <double> drawingVector)
        {
            //the point array to insret to the point series object.
            PointF[] point = new PointF[drawingVector.Count()];

            //the list to put all the points to.
            List <PointF> pointsList = new List <PointF>();

            //the list to put the label for each point (can be 'x' , '.' , or "")
            List <string> labelsList = new List <string>();

            //put all the points and labels for each point to the list.
            for (int i = 0; i < point.Count(); i++)
            {
                point[i] = new PointF(i, (float)drawingVector[i]);
                pointsList.Add(point[i]);
                labelsList.Add("");
            }

            //determine the poit series with both the lists.
            PointSeries ps = new PointSeries(pointsList, labelsList);

            //draw the line chart in new window.
            LineChart lc = new LineChart();

            lc.Series.Add(ps);
            lc.Width  = 400;
            lc.Height = 400;

            lc.ShowZoomWidgets = true;
            lc.AllowZoom       = true;

            lc.XAxis.MinValue = 0;
            lc.XAxis.MaxValue = point.Count();

            //make a new form to put the graph on.
            Form f = new Form();

            f.Controls.Add(lc);
            f.Show();
        }
        private void DeleteSelection()
        {
            IPointSeries plp = PointSeries.Union(_controlPoints.EndPoints,
                                                 PointSeries.Difference(_controlPoints, _adorner.SelectedPoints));

            UndoRedo.PushUndo(new UndoObject(
                                  "delete " + Channel.ToString() + " point deletion.",
                                  new UndoContext(new PointSeries(_controlPoints), new PointSeries(plp)),
                                  (uc) => { Palette.UpdateControlPoints(Channel, uc[0] as PointSeries);
                                            InvalidateVisual();
                                            return(uc); },
                                  (rc) =>
            {
                Palette.UpdateControlPoints(Channel, rc[1] as PointSeries);
                InvalidateVisual();
            }));
            Palette.UpdateControlPoints(Channel, plp);
            _controlPoints = Palette.GetControlPoints(Channel);
            _adorner.ClearSelection();
            InvalidateVisual();
        }
Ejemplo n.º 9
0
        public void CreateSeries()
        {
            RadCartesianChart chart = this.RequestTimeLineChar as RadCartesianChart;

            chart.Series.Clear();
            //指定建立五个序列
            for (int i = 0; i < 5; i++)
            {
                CategoricalSeriesBase series = null;
                if (chart == null)//若图表为null
                {
                    return;
                }
                //创建指定类型的序列
                //series = new LineSeries()
                //{
                //    Stroke = DefaultPalette.FillEntries.Brushes[i],
                //    StrokeThickness = 3,
                //    CategoryBinding = new PropertyNameDataPointBinding("RequestTime"),
                //    ValueBinding = new PropertyNameDataPointBinding("ResponseTime"),
                //    PointTemplate = chart.Resources["PointTemplate"] as DataTemplate
                //};
                series = new PointSeries()
                {
                    CategoryBinding = new PropertyNameDataPointBinding("RequestTime"),
                    ValueBinding    = new PropertyNameDataPointBinding("ResponseTime"),
                    PointTemplate   = chart.Resources["PointTemplate"] as DataTemplate
                };
                series.SetBinding(ChartSeries.ItemsSourceProperty, new Binding()
                {
                    Path = new PropertyPath("Infos.LineChartCollection[" + i + "]")
                });
                series.ClipToPlotArea = false;
                //序列添加到图表
                chart.Series.Add(series);
            }
        }
Ejemplo n.º 10
0
 public void AddPointSeries(PointSeries p)
 {
     series.Add(p);
 }
 public PointSeriesWrapper(PointSeries series)
 {
     _Series = series;
 }
Ejemplo n.º 12
0
 public void AddPointSeries(PointSeries p) {
     series.Add(p);
 }
Ejemplo n.º 13
0
        private void InitChart()
        {
            try
            {
                ChartBrushes = new List <Brush>();
                ChartBrushes.Add(Brushes.Blue);
                ChartBrushes.Add(Brushes.Green);
                ChartBrushes.Add(Brushes.LightSalmon);
                ChartBrushes.Add(Brushes.DarkRed);
                ChartBrushes.Add(Brushes.Gold);
                ChartBrushes.Add(Brushes.CadetBlue);
                ChartBrushes.Add(Brushes.Coral);
                ChartBrushes.Add(Brushes.Crimson);
                ChartBrushes.Add(Brushes.Indigo);
                ChartBrushes.Add(Brushes.PaleGreen);
                ChartBrushes.Add(Brushes.OrangeRed);
                ChartBrushes.Add(Brushes.Purple);
                ChartBrushes.Add(Brushes.Fuchsia);
                ChartBrushes.Add(Brushes.AliceBlue);
                ChartBrushes.Add(Brushes.Orange);
                ChartBrushes.Add(Brushes.Purple);
                ChartBrushes.Add(Brushes.Chartreuse);
                ChartBrushes.Add(Brushes.MediumBlue);
                ChartBrushes.Add(Brushes.Chocolate);

                int countItems = ItemsId.Count;

                if (ItemsId != null)
                {
                    for (int i = 0; i < countItems; i++)
                    {
                        switch (ChartType)
                        {
                        case ChartType.AreaSeries:
                            Chart.Series.Add(new AreaSeries());
                            AreaSeries series1 = (AreaSeries)this.Chart.Series[i];
                            series1.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series1.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series1.Stroke          = ChartBrushes[i];
                            series1.StrokeThickness = 2;
                            break;

                        case ChartType.LineSeries:
                            Chart.Series.Add(new LineSeries());
                            LineSeries series2 = (LineSeries)this.Chart.Series[i];
                            series2.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series2.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series2.Stroke          = ChartBrushes[i];
                            series2.StrokeThickness = 2;
                            break;

                        case ChartType.PointSeries:
                            Chart.Series.Add(new PointSeries());
                            PointSeries series3 = (PointSeries)this.Chart.Series[i];
                            series3.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series3.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            break;

                        case ChartType.SplineAreaSeries:
                            Chart.Series.Add(new SplineAreaSeries());
                            SplineAreaSeries series4 = (SplineAreaSeries)this.Chart.Series[i];
                            series4.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series4.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series4.Stroke          = ChartBrushes[i];
                            series4.StrokeThickness = 2;
                            break;

                        case ChartType.SplineSeries:
                            Chart.Series.Add(new SplineSeries());
                            SplineSeries series5 = (SplineSeries)this.Chart.Series[i];
                            series5.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series5.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series5.Stroke          = ChartBrushes[i];
                            series5.StrokeThickness = 2;
                            break;

                        case ChartType.StepAreaSeries:
                            Chart.Series.Add(new StepAreaSeries());
                            StepAreaSeries series6 = (StepAreaSeries)this.Chart.Series[i];
                            series6.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series6.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series6.Stroke          = ChartBrushes[i];
                            series6.StrokeThickness = 2;
                            break;

                        case ChartType.StepLineSeries:
                            Chart.Series.Add(new StepLineSeries());
                            StepLineSeries series7 = (StepLineSeries)this.Chart.Series[i];
                            series7.CategoryBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Time"
                            };
                            series7.ValueBinding = new PropertyNameDataPointBinding()
                            {
                                PropertyName = "Value"
                            };
                            series7.Stroke          = ChartBrushes[i];
                            series7.StrokeThickness = 2;
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogIndustrialMonitoring(ex);
            }
        }
Ejemplo n.º 14
0
        void WindowChartHistory_ShowDataCompleted(object sender, ShowDataCompletedEventArgs e)
        {
            try
            {
                if (ItemsId.Count == 1)
                {
                    TextBlockTitle.Text = string.Format("{0} {1}-{2}", e.CurrentItem.ItemName, this.StartTime.ToString(), this.EndTime.ToString());
                }
                else
                {
                    TextBlockTitle.Text = string.Format("Compare {0}-{1}", this.StartTime.ToString(), this.EndTime.ToString());
                }

                switch (ChartType)
                {
                case ChartType.AreaSeries:
                    AreaSeries series1 = (AreaSeries)this.Chart.Series[e.ItemId.Key];
                    series1.ItemsSource = e.Data;
                    break;

                case ChartType.LineSeries:
                    LineSeries series2 = (LineSeries)this.Chart.Series[e.ItemId.Key];
                    series2.ItemsSource = e.Data;
                    break;

                case ChartType.PointSeries:
                    PointSeries series3 = (PointSeries)this.Chart.Series[e.ItemId.Key];
                    series3.ItemsSource = e.Data;
                    break;

                case ChartType.SplineAreaSeries:
                    SplineAreaSeries series4 = (SplineAreaSeries)this.Chart.Series[e.ItemId.Key];
                    series4.ItemsSource = e.Data;
                    break;

                case ChartType.SplineSeries:
                    SplineSeries series5 = (SplineSeries)this.Chart.Series[e.ItemId.Key];
                    series5.ItemsSource = e.Data;
                    break;

                case ChartType.StepAreaSeries:
                    StepAreaSeries series6 = (StepAreaSeries)this.Chart.Series[e.ItemId.Key];
                    series6.ItemsSource = e.Data;
                    break;

                case ChartType.StepLineSeries:
                    StepLineSeries series7 = (StepLineSeries)this.Chart.Series[e.ItemId.Key];
                    series7.ItemsSource = e.Data;
                    break;
                }

                Chart.Zoom = new Size(1, 1);

                if (e.GenerateLegend)
                {
                    ChartLegend.Items.Add(new LegendItem()
                    {
                        MarkerFill = ChartBrushes[e.ItemId.Key], Title = e.CurrentItem.ItemName
                    });
                }

                BusyIndicator.IsBusy = false;
            }
            catch (Exception ex)
            {
                Logger.LogIndustrialMonitoring(ex);
            }
        }