public static void ApplySaccadePointMarkers(ChartPlotter amplitudePlotter, List <EyeMove> saccades)
        {
            var saccadeStartFoundDataSource = new EnumerableDataSource <EyeMove>(saccades.Where(x => x.IsStartFound == true));

            saccadeStartFoundDataSource.SetXMapping(x => x.EyeStartTime);
            saccadeStartFoundDataSource.SetYMapping(x => x.EyeStartCoord);


            var saccadeEndFoundDataSource = new EnumerableDataSource <EyeMove>(saccades.Where(x => x.IsEndFound == true));

            saccadeEndFoundDataSource.SetXMapping(x => x.EyeEndTime);
            saccadeEndFoundDataSource.SetYMapping(x => x.EyeEndCoord);


            var marker  = new MarkerPointsGraph(saccadeStartFoundDataSource);
            var markPen = new CirclePointMarker();

            markPen.Pen   = new Pen(Brushes.Chartreuse, 1);
            markPen.Size  = 6;
            marker.Name   = "SaccStart";
            markPen.Fill  = Brushes.Chartreuse;
            marker.Marker = markPen;
            amplitudePlotter.Children.Add(marker);


            marker        = new MarkerPointsGraph(saccadeEndFoundDataSource);
            markPen       = new CirclePointMarker();
            markPen.Pen   = new Pen(Brushes.Gold, 1);
            markPen.Size  = 6;
            marker.Name   = "SaccEnd";
            markPen.Fill  = Brushes.Gold;
            marker.Marker = markPen;
            amplitudePlotter.Children.Add(marker);
        }
예제 #2
0
        private void btnGetMarkers_Click(object sender, RoutedEventArgs e)
        {
            dataReader.ReadData();
            int           progressBarValue = 0;
            List <double> xAxis            = new List <double>();
            List <double> yAxis            = new List <double>();
            //int step = DataReader.relativeElongation.Count / 100;
            int step      = dataReader.RelativeElongation.Count / (int)pbar.Maximum;
            int makerStep = 50;

            //create markers
            for (int i = 0; i < dataReader.RelativeElongation.Count;)
            {
                if (dataReader.RelativeElongation.Count > pbar.Maximum)
                {
                    if (i % step == 0)
                    {
                        updateProgressBar(progressBarValue++);
                    }
                }
                if (i % (makerStep) == 0)
                {
                    xAxis.Add(dataReader.RelativeElongation[i]);
                    yAxis.Add(dataReader.PreassureInMPa[i]);
                }

                //points.Add(new VoltagePoint(DataReader.preassureInMPa[i], DataReader.relativeElongation[i]));
                i = i + 1;
            }



            EnumerableDataSource <double> gX = new EnumerableDataSource <double>(xAxis);
            EnumerableDataSource <double> gY = new EnumerableDataSource <double>(yAxis);

            _MarkerGraph.DataSource = new CompositeDataSource(gX, gY);

            //no scaling - identity mapping
            gX.XMapping = xx => xx;
            gY.YMapping = yy => yy;

            CirclePointMarker mkr = new CirclePointMarker();

            mkr.Fill            = new SolidColorBrush(Colors.Red);
            mkr.Pen             = new Pen(new SolidColorBrush(Colors.Black), 1);
            _MarkerGraph.Marker = mkr;



            updateProgressBar(100);
            plotter.FitToView();
        }
예제 #3
0
        private void plotBuyEvent(Collection <StockData> list)
        {
            IPointDataSource  point  = null;
            CirclePointMarker marker = new CirclePointMarker();

            EnumerableDataSource <StockData> _edsSPP;

            _edsSPP = new EnumerableDataSource <StockData>(list);
            _edsSPP.SetXMapping(p => dateAxis.ConvertToDouble(p.date));
            _edsSPP.SetYMapping(p => p.value);
            point = _edsSPP;

            BuyMarkerGraph.DataSource = point;

            marker.Size           = 10;
            marker.Fill           = new SolidColorBrush(Colors.Blue);
            marker.Pen            = new Pen(new SolidColorBrush(Colors.Black), 2.0);
            BuyMarkerGraph.Marker = marker;
        }
예제 #4
0
        void updateCollectionTimer_Tick(object sender, EventArgs e)
        {
            if (isOnlineLine)
            {
                int oldNumber           = dataReader.RelativeElongation.Count;
                int previousCountSample = dataReader.RelativeElongation.Count;
                int newCounterValue     = dataReader.ReadDataOnLine();


                if (dataReader.RelativeElongation.Count > 0)
                {
                    for (int i = dataReader.RelativeElongation.Count - 1; i < dataReader.RelativeElongation.Count;)
                    {
                        points.Add(new VoltagePoint(dataReader.PreassureInMPa[i], dataReader.RelativeElongation[i]));
                        i = i + 1;
                    }
                }
            }

            //points.Add(new VoltagePoint(ym[ym.Count - 1], xm[xm.Count - 1]));
            if (isOnlineMarkers)
            {
                int oldNumber           = dataReader.RelativeElongation.Count;
                int previousCountSample = dataReader.RelativeElongation.Count;
                int newCounterValue     = dataReader.ReadDataOnLine();



                //List<string> provera = new List<string>();
                //provera.Add("ulazak " + DateTime.Now + " oldNumber je " + oldNumber);
                //File.AppendAllLines(@"D:\provera.txt",provera);
                if (dataReader.RelativeElongation.Count > 0)
                {
                    for (int i = dataReader.RelativeElongation.Count - 1; i < dataReader.RelativeElongation.Count;)
                    {
                        points.Add(new VoltagePoint(dataReader.PreassureInMPa[i], dataReader.RelativeElongation[i]));
                        i = i + 1;
                    }

                    CirclePointMarker mkr = new CirclePointMarker();
                    mkr.Fill            = new SolidColorBrush(Colors.Red);
                    mkr.Pen             = new Pen(new SolidColorBrush(Colors.Black), 1);
                    _MarkerGraph.Marker = mkr;
                }
            }

            if (isAnimateLine)
            {
                animateLineCnt++;
                points.Add(new VoltagePoint(dataReader.PreassureInMPa[animateLineCnt], dataReader.RelativeElongation[animateLineCnt]));
                if (animateLineCnt == dataReader.PreassureInMPa.Count - 1)
                {
                    updateCollectionTimer.Stop();
                    isAnimateLine = false;
                }
            }

            if (isAnimateMarkers)
            {
                EnumerableDataSource <double> gX = new EnumerableDataSource <double>(xAxisMarkers);
                EnumerableDataSource <double> gY = new EnumerableDataSource <double>(yAxisMarkers);
                _MarkerGraph.DataSource = new CompositeDataSource(gX, gY);

                //no scaling - identity mapping
                gX.XMapping = xx => xx;
                gY.YMapping = yy => yy;

                CirclePointMarker mkr = new CirclePointMarker();
                mkr.Fill            = new SolidColorBrush(Colors.Red);
                mkr.Pen             = new Pen(new SolidColorBrush(Colors.Black), 1);
                _MarkerGraph.Marker = mkr;

                animateMarkersCnt++;
                xAxisMarkers.Add(xAxisMarkersSum[animateMarkersCnt]);
                yAxisMarkers.Add(yAxisMarkersSum[animateMarkersCnt]);
                if (animateMarkersCnt == xAxisMarkersSum.Count - 1)
                {
                    updateCollectionTimer.Stop();
                    isAnimateMarkers = false;
                }
            }

            // points.Add(new VoltagePoint(ym[ym.Count-1], xm[xm.Count - 1]));
            // i++;
        }