コード例 #1
0
ファイル: HiLoSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            LowPoints.Clear();
            HighPoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            if (Points != null && SeriesContainer != null)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                int index = 0;
                foreach (ChartPoint point in Points)
                {
                    if (CheckValuePoint(oldPoint,point))
                    {
                        Point highPoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        Point lowPoint = NormalizePoint(new Point(lowPoints[index].XValue, lowPoints[index].YValue));
                        HighPoints.Add(highPoint);
                        LowPoints.Add(lowPoint);
                        oldPoint = point;
                    }
                    index++;
                }
                if (RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < HighPoints.Count; i++)
                        {
                            LinePart linePart = new LinePart(HighPoints[i], LowPoints[i]);
                            SetBindingForStrokeandStrokeThickness(linePart);
                            Parts.Add(linePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (LinePart part in Parts)
                        {
                            part.X1 = HighPoints[i].X;
                            part.Y1 = HighPoints[i].Y;
                            part.X2 = LowPoints[i].X;
                            part.Y2 = LowPoints[i].Y;
                            part.Refresh();
                            i++;
                        }
                    }

                }
            }
            else
            {
              Parts.Clear();
            }
            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #2
0
ファイル: LineSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            if (Points != null && SeriesContainer != null)
            {
                LinePoints = new PointCollection();
                if (!IsPointsGenerated)
                    Parts.Clear();
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                foreach (ChartPoint point in Points)
                {
                    if (CheckValuePoint(oldPoint,point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        LinePoints.Add(linePoint);
                        oldPoint = point;
                    }
                }
                if (RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        if (!UseSinglePart)
                        {
                            for (int i = 0; i < LinePoints.Count - 1; i++)
                            {
                                if (CheckValue(LinePoints[i].X) && CheckValue(LinePoints[i].Y) && CheckValue(LinePoints[i + 1].X) && CheckValue(LinePoints[i + 1].Y))
                                {
                                    LinePart linePart = new LinePart(LinePoints[i], LinePoints[i + 1]);
                                    SetBindingForStrokeandStrokeThickness(linePart);
                                    Parts.Add(linePart);
                                }
                            }
                        }
                        else
                        {
                            LineSinglePart singlePart = new LineSinglePart(LinePoints);
                            SetBindingForStrokeandStrokeThickness(singlePart);
                            Parts.Add(singlePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i=0;
                        if (!UseSinglePart)
                        {
                            foreach (LinePart part in Parts)
                            {
                                if (CheckValue(LinePoints[i].X) && CheckValue(LinePoints[i].Y) && CheckValue(LinePoints[i + 1].X) && CheckValue(LinePoints[i + 1].Y))
                                {
                                    part.X1 = LinePoints[i].X;
                                    part.Y1 = LinePoints[i].Y;
                                    part.X2 = LinePoints[i + 1].X;
                                    part.Y2 = LinePoints[i + 1].Y;
                                    part.Refresh();
                                }
                                i++;
                            }
                        }
                        else
                        {
                            foreach (LineSinglePart part in Parts)
                            {
                                part.LinePoints = LinePoints;
                                part.Refresh();
                                i++;
                            }
                        }
                    }
                }
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #3
0
ファイル: AreaSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            AreaPoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            Point endPoint;
            Point startPoint=new Point(0,0);
            int index = 0;
            if (this.Points != null && this.SeriesContainer != null && this.Points.Count > 1)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                AreaPoints.Add(startPoint);
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint,point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        if (index == 0)
                            linePoint.X = linePoint.X - this.StrokeThickness;
                        AreaPoints.Add(linePoint);
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < AreaPoints.Count - 2; i++)
                        {
                            startPoint = NormalizePoint(new Point(this.Points[i].XValue, YMin));
                            endPoint = NormalizePoint(new Point(this.Points[i + 1].XValue, YMin));
                            AreaPart areaPart = new AreaPart(AreaPoints[i + 1], startPoint, endPoint, AreaPoints[i + 2]);
                            SetBindingForStrokeandStrokeThickness(areaPart);
                            this.Parts.Add(areaPart);

                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (AreaPart part in this.Parts)
                        {
                            startPoint = NormalizePoint(new Point(this.Points[i].XValue, YMin));
                            endPoint = NormalizePoint(new Point(this.Points[i + 1].XValue, YMin));
                            part.StartPoint = AreaPoints[i + 1];
                            part.AreaStartPoint = startPoint;
                            part.AreaEndPoint = endPoint;
                            part.EndPoint = AreaPoints[i + 2];
                            part.Refresh();
                            i++;
                        }
                    }
                }
                endPoint = NormalizePoint(new Point(this.Points[this.Points.Count - 1].XValue, YMin));
                startPoint = NormalizePoint(new Point(this.Points[0].XValue, YMin));
                startPoint.X = startPoint.X - this.StrokeThickness;
                if (AreaPoints.Count > 0)
                {
                    AreaPoints[0] = startPoint;
                    AreaPoints.Add(endPoint);
                }
            }
            else
            {
                Parts.Clear();
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #4
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            LowPoints.Clear();
            HighPoints.Clear();
            OpenPoints.Clear();
            ClosePoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            if (this.Points != null && this.SeriesContainer != null)
            {
                CalculateMinAndMax();
                OpenOffPoints = new PointCollection();
                CloseOffPoints = new PointCollection();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                int index = 0;
                Point startAndEndPoint = CalculateSeriesInfo();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point highPoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        Point lowPoint = NormalizePoint(new Point(lowPoints[index].XValue, lowPoints[index].YValue));
                        Point openPoint = NormalizePoint(new Point(openPoints[index].XValue, openPoints[index].YValue));
                        Point closePoint = NormalizePoint(new Point(closePoints[index].XValue, closePoints[index].YValue));
                        Point openOffPoint = NormalizePoint(new Point(openPoints[index].XValue + startAndEndPoint.X, openPoints[index].YValue));
                        Point closeOffPoint = NormalizePoint(new Point(closePoints[index].XValue - startAndEndPoint.X, closePoints[index].YValue));
                        HighPoints.Add(highPoint);
                        LowPoints.Add(lowPoint);
                        OpenPoints.Add(openPoint);
                        ClosePoints.Add(closePoint);
                        OpenOffPoints.Add(openOffPoint);
                        CloseOffPoints.Add(closeOffPoint);
                        oldPoint = point;
                    }
                    index++;
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < this.HighPoints.Count; i++)
                        {
                            HiLoOpenClosePart hiLoOpenClosePart = new HiLoOpenClosePart(this.HighPoints[i],this.LowPoints[i],this.ClosePoints[i],this.CloseOffPoints[i],this.OpenPoints[i],this.OpenOffPoints[i]);
                            if (this.openPoints[i].YValue <= this.closePoints[i].YValue)
                                hiLoOpenClosePart.IsBearfill = true;
                            else
                                hiLoOpenClosePart.IsBearfill = false;
                            SetBindingForStrokeandStrokeThickness(hiLoOpenClosePart);
                            this.Parts.Add(hiLoOpenClosePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (HiLoOpenClosePart part in this.Parts)
                        {
                            part.Point1 = this.HighPoints[i];
                            part.Point2 = this.LowPoints[i];
                            part.Point3 = this.ClosePoints[i];
                            part.Point4 = this.CloseOffPoints[i];
                            part.Point5 = this.OpenPoints[i];
                            part.Point6 = this.OpenOffPoints[i];
                            part.Refresh();
                            i++;
                        }
                    }

                }
            }
            else
            {
              Parts.Clear();
            }
            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #5
0
ファイル: StepLineSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            LinePoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            if (this.Points != null && this.SeriesContainer != null)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                for (int i = 0; i < this.Points.Count; i++)
                {
                    ChartPoint point = this.Points[i];
                    ChartPoint step = new ChartPoint();
                    if (!(i == this.Points.Count - 1))
                        step = this.Points[i + 1];
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        LinePoints.Add(linePoint);
                        if (!(i == this.Points.Count - 1))
                        {
                            Point stepPoint = NormalizePoint(new Point(point.XValue, step.YValue));
                            LinePoints.Add(stepPoint);
                        }
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        if (!this.UseSinglePart)
                        {
                            for (int i = 0; i < LinePoints.Count - 2; i++)
                            {
                                StepLinePart stepLinePart = new StepLinePart(LinePoints[i], LinePoints[i + 1], LinePoints[i + 2]);
                                SetBindingForStrokeandStrokeThickness(stepLinePart);
                                this.Parts.Add(stepLinePart);
                            }
                        }
                        else
                        {
                            LineSinglePart stepLinePart = new LineSinglePart();
                            stepLinePart.LinePoints = this.LinePoints;
                            SetBindingForStrokeandStrokeThickness(stepLinePart);
                            this.Parts.Add(stepLinePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        if (!this.UseSinglePart)
                        {
                            foreach (StepLinePart part in this.Parts)
                            {
                                part.StartPoint = LinePoints[i];
                                part.StepPoint = LinePoints[i + 1];
                                part.EndPoint = LinePoints[i + 2];
                                part.Refresh();
                                i++;
                            }
                        }
                        else
                        {
                            foreach (LineSinglePart part in this.Parts)
                            {
                                part.LinePoints = this.LinePoints;
                                part.Refresh();
                                i++;
                            }
                        }
                    }
                }
            }
            else
            {
              Parts.Clear();
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #6
0
ファイル: SeriesBase.cs プロジェクト: jcw-/sparrowtoolkit
 protected PointsCollection GetPointsFromValues(List<double> xValues,List<double> yValues)
 {
     PointsCollection tempPoints = new PointsCollection();
     for (int i = 0; (i < xValues.Count && i < yValues.Count); i++)
     {
         ChartPoint point = new ChartPoint() { XValue = xValues[i], YValue = yValues[i] };
         tempPoints.Add(point);
     }
     return tempPoints;
 }
コード例 #7
0
ファイル: SeriesBase.cs プロジェクト: jcw-/sparrowtoolkit
 protected bool CheckValuePoint(ChartPoint oldPoint,ChartPoint point)
 {
     //point.YValue <= yMax && point.YValue >= yMin && point.XValue <= xMax && point.XValue >= xMin &&
     if ((Math.Abs(oldPoint.XValue - point.XValue) >= xAbs || Math.Abs(oldPoint.YValue - point.YValue) >= yAbs))
         return true;
     else
         return false;
 }
コード例 #8
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        override public void GenerateDatas()
        {
            AreaPoints.Clear();
            if (!IsPointsGenerated)
            {
                Parts.Clear();
            }
            Point endPoint;
            Point startPoint = new Point(0, 0);
            int   index      = 0;

            if (this.Points != null && this.SeriesContainer != null && this.Points.Count > 1)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint()
                {
                    XValue = double.MinValue, YValue = double.MinValue
                };
                IntializePoints();
                AreaPoints.Add(startPoint);
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        if (index == 0)
                        {
                            linePoint.X = linePoint.X - this.StrokeThickness;
                        }
                        AreaPoints.Add(linePoint);
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < AreaPoints.Count - 2; i++)
                        {
                            startPoint = NormalizePoint(new Point(this.Points[i].XValue, YMin));
                            endPoint   = NormalizePoint(new Point(this.Points[i + 1].XValue, YMin));
                            AreaPart areaPart = new AreaPart(AreaPoints[i + 1], startPoint, endPoint, AreaPoints[i + 2]);
                            SetBindingForStrokeandStrokeThickness(areaPart);
                            this.Parts.Add(areaPart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (AreaPart part in this.Parts)
                        {
                            startPoint          = NormalizePoint(new Point(this.Points[i].XValue, YMin));
                            endPoint            = NormalizePoint(new Point(this.Points[i + 1].XValue, YMin));
                            part.StartPoint     = AreaPoints[i + 1];
                            part.AreaStartPoint = startPoint;
                            part.AreaEndPoint   = endPoint;
                            part.EndPoint       = AreaPoints[i + 2];
                            part.Refresh();
                            i++;
                        }
                    }
                }
                endPoint     = NormalizePoint(new Point(this.Points[this.Points.Count - 1].XValue, YMin));
                startPoint   = NormalizePoint(new Point(this.Points[0].XValue, YMin));
                startPoint.X = startPoint.X - this.StrokeThickness;
                if (AreaPoints.Count > 0)
                {
                    AreaPoints[0] = startPoint;
                    AreaPoints.Add(endPoint);
                }
            }
            else
            {
                Parts.Clear();
            }

            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }
            IsRefreshed = false;
        }
コード例 #9
0
ファイル: BubbleSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            BubblePoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            Point endPoint = new Point(0, 0);
            Point startPoint = new Point(0, 0);
            if (PointsSource != null)
                SizeValues = this.GetReflectionValues(this.SizePath, PointsSource, SizeValues, false);

            if (this.Points != null && this.SeriesContainer != null && this.Points.Count > 0)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        BubblePoints.Add(linePoint);
                        oldPoint = point;
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < BubblePoints.Count; i++)
                        {
                            ScatterPart scatterPart = new ScatterPart(BubblePoints[i]);
                            scatterPart.Size = SizeValues[i];
                            SetBindingForStrokeandStrokeThickness(scatterPart);
                            this.Parts.Add(scatterPart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (ScatterPart part in this.Parts)
                        {
                            part.X1 = BubblePoints[i].X;
                            part.Y1 = BubblePoints[i].Y;
                            part.Refresh();
                            i++;
                        }
                    }
                }
            }
            else
            {
              Parts.Clear();
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }
コード例 #10
0
ファイル: SplineSeries.cs プロジェクト: jcw-/sparrowtoolkit
 /// <summary>
 /// Generates the datas.
 /// </summary>
 public override void GenerateDatas()
 {
     CalculateMinAndMax();
     ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
     IntializePoints();
     SplinePoints.Clear();
     if (!IsPointsGenerated)
         Parts.Clear();
     if (this.Points != null && this.SeriesContainer != null)
     {
         CalculateMinAndMax();
         foreach (ChartPoint point in this.Points)
         {
             if (CheckValuePoint(oldPoint,point))
             {
                 Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                 this.SplinePoints.Add(linePoint);
             }
         }
         if (this.SplinePoints.Count > 1)
             BezierSpline.GetCurveControlPoints(this.SplinePoints.ToArray(), out FirstControlPoints, out SecondControlPoints);
         if (this.RenderingMode == RenderingMode.Default)
         {
             if (!IsPointsGenerated)
             {
                 for (int i = 0; i < this.SplinePoints.Count - 1; i++)
                 {
                     SplinePart splinePart = new SplinePart(SplinePoints[i], FirstControlPoints[i], SecondControlPoints[i], SplinePoints[i + 1]);
                     SetBindingForStrokeandStrokeThickness(splinePart);
                     this.Parts.Add(splinePart);
                 }
                 IsPointsGenerated = true;
             }
             else
             {
                 int i = 0;
                 foreach (SplinePart part in this.Parts)
                 {
                     part.StartPoint = SplinePoints[i];
                     part.FirstControlPoint = FirstControlPoints[i];
                     part.EndControlPoint = SecondControlPoints[i];
                     part.EndPoint = SplinePoints[i + 1];
                     part.Refresh();
                     i++;
                 }
             }
         }
     }
     else
     {
       Parts.Clear();
     }
     if (this.SeriesContainer != null)
         this.SeriesContainer.Invalidate();
     IsRefreshed = false;
 }
コード例 #11
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            ScatterPoints.Clear();
            if (!IsPointsGenerated)
            {
                Parts.Clear();
            }
            Point endPoint   = new Point(0, 0);
            Point startPoint = new Point(0, 0);

            if (this.Points != null && this.SeriesContainer != null && this.Points.Count > 0)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint()
                {
                    XValue = double.MinValue, YValue = double.MinValue
                };
                IntializePoints();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        ScatterPoints.Add(linePoint);
                        oldPoint = point;
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < ScatterPoints.Count; i++)
                        {
                            ScatterPart scatterPart = new ScatterPart(ScatterPoints[i]);
                            Binding     sizeBinding = new Binding();
                            sizeBinding.Path   = new PropertyPath("ScatterSize");
                            sizeBinding.Source = this;
                            scatterPart.SetBinding(ScatterPart.SizeProperty, sizeBinding);
                            SetBindingForStrokeandStrokeThickness(scatterPart);
                            this.Parts.Add(scatterPart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (ScatterPart part in this.Parts)
                        {
                            part.X1 = ScatterPoints[i].X;
                            part.Y1 = ScatterPoints[i].Y;
                            part.Refresh();
                            i++;
                        }
                    }
                }
            }
            else
            {
                Parts.Clear();
            }

            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }

            IsRefreshed = false;
        }
コード例 #12
0
ファイル: ScatterSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            ScatterPoints.Clear();
            if (!IsPointsGenerated)
                Parts.Clear();
            Point endPoint = new Point(0, 0);
            Point startPoint = new Point(0, 0);

            if (this.Points != null && this.SeriesContainer != null && this.Points.Count > 0)
            {
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        ScatterPoints.Add(linePoint);
                        oldPoint = point;
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i < ScatterPoints.Count; i++)
                        {
                            ScatterPart scatterPart = new ScatterPart(ScatterPoints[i]);
                            Binding sizeBinding = new Binding();
                            sizeBinding.Path = new PropertyPath("ScatterSize");
                            sizeBinding.Source = this;
                            scatterPart.SetBinding(ScatterPart.SizeProperty, sizeBinding);
                            SetBindingForStrokeandStrokeThickness(scatterPart);
                            this.Parts.Add(scatterPart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (ScatterPart part in this.Parts)
                        {
                            part.X1 = ScatterPoints[i].X;
                            part.Y1 = ScatterPoints[i].Y;
                            part.Refresh();
                            i++;
                        }
                    }
                }

            }
            else
            {
                Parts.Clear();
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();

            IsRefreshed = false;
        }
コード例 #13
0
        /// <summary>
        /// Generates the datas.
        /// </summary>
        override public void GenerateDatas()
        {
            if (Points != null && SeriesContainer != null)
            {
                LinePoints = new PointCollection();
                if (!IsPointsGenerated)
                {
                    Parts.Clear();
                }
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint {
                    XValue = double.MinValue, YValue = double.MinValue
                };
                IntializePoints();
                foreach (ChartPoint point in Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        LinePoints.Add(linePoint);
                        oldPoint = point;
                    }
                }
                if (RenderingMode == RenderingMode.Default)
                {
                    if (!IsPointsGenerated)
                    {
                        if (!UseSinglePart)
                        {
                            for (int i = 0; i < LinePoints.Count - 1; i++)
                            {
                                if (CheckValue(LinePoints[i].X) && CheckValue(LinePoints[i].Y) && CheckValue(LinePoints[i + 1].X) && CheckValue(LinePoints[i + 1].Y))
                                {
                                    LinePart linePart = new LinePart(LinePoints[i], LinePoints[i + 1]);
                                    SetBindingForStrokeandStrokeThickness(linePart);
                                    Parts.Add(linePart);
                                }
                            }
                        }
                        else
                        {
                            LineSinglePart singlePart = new LineSinglePart(LinePoints);
                            SetBindingForStrokeandStrokeThickness(singlePart);
                            Parts.Add(singlePart);
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        if (!UseSinglePart)
                        {
                            foreach (LinePart part in Parts)
                            {
                                if (CheckValue(LinePoints[i].X) && CheckValue(LinePoints[i].Y) && CheckValue(LinePoints[i + 1].X) && CheckValue(LinePoints[i + 1].Y))
                                {
                                    part.X1 = LinePoints[i].X;
                                    part.Y1 = LinePoints[i].Y;
                                    part.X2 = LinePoints[i + 1].X;
                                    part.Y2 = LinePoints[i + 1].Y;
                                    part.Refresh();
                                }
                                i++;
                            }
                        }
                        else
                        {
                            foreach (LineSinglePart part in Parts)
                            {
                                part.LinePoints = LinePoints;
                                part.Refresh();
                                i++;
                            }
                        }
                    }
                }
            }

            if (this.SeriesContainer != null)
            {
                this.SeriesContainer.Invalidate();
            }
            IsRefreshed = false;
        }
コード例 #14
0
ファイル: ColumnSeries.cs プロジェクト: jcw-/sparrowtoolkit
        /// <summary>
        /// Generates the datas.
        /// </summary>
        public override void GenerateDatas()
        {
            ColumnPoints.Clear();

            if (this.Points != null && this.SeriesContainer != null)
            {
                if (!IsPointsGenerated)
                    Parts.Clear();
                StartEndPoints = new PointCollection();
                Rects = new List<Rect>();
                CalculateMinAndMax();
                ChartPoint oldPoint = new ChartPoint() { XValue = double.MinValue, YValue = double.MinValue };
                IntializePoints();
                Point startAndEndPoint = CalculateColumnSeriesInfo();
                foreach (ChartPoint point in this.Points)
                {
                    if (CheckValuePoint(oldPoint, point))
                    {
                        Point linePoint = NormalizePoint(new Point(point.XValue, point.YValue));
                        Point startPoint = NormalizePoint(new Point(point.XValue + startAndEndPoint.X, point.YValue));
                        Point endPoint = NormalizePoint(new Point(point.XValue + startAndEndPoint.Y, YMin));
                        StartEndPoints.Add(startPoint);
                        StartEndPoints.Add(endPoint);
                        ColumnPoints.Add(linePoint);
                        Rects.Add(new Rect(startPoint, endPoint));
                        oldPoint = point;
                    }
                }
                if (this.RenderingMode == RenderingMode.Default)
                {
                    //if (!UseSinglePart)
                    //{
                    if (!IsPointsGenerated)
                    {
                        for (int i = 0; i <= this.StartEndPoints.Count - 2; i += 2)
                        {
                            if (CheckValue(StartEndPoints[i].X) && CheckValue(StartEndPoints[i].Y) && CheckValue(StartEndPoints[i + 1].X) && CheckValue(StartEndPoints[i + 1].Y))
                            {
                                ColumnPart columnPart = new ColumnPart(StartEndPoints[i].X, StartEndPoints[i].Y, StartEndPoints[i + 1].X, StartEndPoints[i + 1].Y);
                                SetBindingForStrokeandStrokeThickness(columnPart);
                                this.Parts.Add(columnPart);
                            }
                            //}
                            //else
                            //{
                            //    LineSinglePart singlePart = new LineSinglePart(this.ColumnPoints);
                            //    SetBindingForStrokeandStrokeThickness(singlePart);
                            //    this.Parts.Add(singlePart);
                            //}
                        }
                        IsPointsGenerated = true;
                    }
                    else
                    {
                        int i = 0;
                        foreach (ColumnPart part in this.Parts)
                        {
                            if (CheckValue(StartEndPoints[i].X) && CheckValue(StartEndPoints[i].Y) && CheckValue(StartEndPoints[i + 1].X) && CheckValue(StartEndPoints[i + 1].Y))
                            {
                                part.X1 = StartEndPoints[i].X;
                                part.Y1 = StartEndPoints[i].Y;
                                part.X2 = StartEndPoints[i + 1].X;
                                part.Y2 = StartEndPoints[i + 1].Y;
                                part.Refresh();
                            }
                            i += 2;
                        }

                    }

                }
            }
            else
            {
              Parts.Clear();
            }

            if (this.SeriesContainer != null)
                this.SeriesContainer.Invalidate();
            IsRefreshed = false;
        }