Пример #1
0
 private void AddChart()
 {
     ChartStyle.AddChartStyle(tbTitle, tbXLabel, tbYLabel);
     if (DataCollection.DataList.Count == 0)
     {
         return;
     }
     DataCollection.AddLines(ChartStyle);
     Legend.AddLegend(ChartCanvas, DataCollection);
 }
        private void ResizeChart()
        {
            chartCanvas.Children.Clear();
            textCanvas.Children.RemoveRange(1, textCanvas.Children.Count - 1);
            cs.AddChartStyle();

            if (DataCollection != null)
            {
                if (DataCollection.Count > 0)
                {
                    cs.Set2DMatrixControl(DataCollection);
                }
            }
        }
        private async Task ResizeChart()
        {
            CommandHelper ch = new CommandHelper();

            await ch.RunBackgroundWorkerWithFlagHelperAsync(() => IsDrawing, async() =>
            {
                this.Dispatcher.Invoke(() =>
                {
                    //Filtering data based on the selection
                    try
                    {
                        chartCanvas.Children.Clear();
                        textCanvas.Children.RemoveRange(1, textCanvas.Children.Count - 1);
                        cs.AddChartStyle();

                        if (DataCollection != null)
                        {
                            if (DataCollection.Count > 0)
                            {
                                cs.SetLinesControl(new BindableCollection <LineSeries>(DataCollection));

                                if (!IsBubbleChart)
                                {
                                    lg.AddLegend(chartCanvas, new BindableCollection <LineSeries>(DataCollection));
                                }
                                else
                                {
                                    lg.AddLegend(chartCanvas, Unit);
                                    lg.AddColorBar(textCanvas, ColorMap);
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    finally
                    {
                    }
                });
            });
        }
Пример #4
0
        /// <summary>
        /// Визивається кожен раз при необхідності перемалювати графік
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void PlotPicBox_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;

            g.SmoothingMode = SmoothingMode.AntiAlias;

            cs.Elevation = trkElevation.Value;
            cs.Azimuth   = trkAzimuth.Value;
            if (graph)
            {
                cf.Peack3D(ds, cs);
            }
            else
            {
                cf.SinROverR3D(ds, cs);
            }

            cs.AddChartStyle(g);
            dc.AddChart(g, ds, cs);//, cs2d);
        }
Пример #5
0
        //#region
        //public async Task BiaxialGraphicsAsync()
        //{
        //    DiagramGraphics = new DovDrawings(diagramContext);
        //    DiagramGraphics.DrwColor = "white";
        //    DiagramGraphics.LineThickness = 2;
        //    diagramChart.ChartArea = new RectangleF(0, 0, DiagramCanvWidth, DiagramCanvHeight);
        //    bool start = true;
        //    float axialMax = 5;
        //    float axialMin = -5;
        //    float bendxMax = 6;
        //    float bendxMin = -6;
        //    float bendyMax = 4;
        //    float bendyMin = -4;
        //    foreach (KeyValuePair<float, List<float[]>> chartPoint in ColumnInter.BiaxialChartTable)
        //    {
        //        List<float[]> data = chartPoint.Value;
        //        List<float> bendingx = data[0].ToList();
        //        bendingx = bendingx.OrderBy(o => o).ToList();
        //        List<float> bendingy = data[1].ToList();
        //        bendingy = bendingy.OrderBy(o => o).ToList();
        //        List<float> axial = data[2].ToList();
        //        axial = axial.OrderBy(o => o).ToList();
        //        if (start)
        //        {
        //            axialMin = axial.First();
        //            axialMax = axial.Last();
        //            bendxMin = bendingx.First();
        //            bendxMax = bendingx.Last();
        //            bendyMin = bendingy.First();
        //            bendyMax = bendingy.Last();
        //            start = false;
        //        }
        //        else
        //        {
        //            if (axialMin > axial.First()) axialMin = axial.First();
        //            if (axialMax < axial.Last()) axialMax = axial.Last();
        //            if (bendxMin > bendingx.First()) bendxMin = bendingx.First();
        //            if (bendxMax < bendingx.Last()) bendxMax = bendingx.Last();
        //            if (bendyMin > bendingy.First()) bendyMin = bendingy.First();
        //            if (bendyMax < bendingy.Last()) bendyMax = bendingy.Last();

        //        }

        //    }
        //    diagramChart.XTick = (bendxMax - bendxMin) / 10;
        //    diagramChart.YTick = (bendyMax - bendyMin) / 10;
        //    diagramChart.ZTick = (axialMax - axialMin) / 10;
        //    float[] scaleLimits = new float[] { bendxMin, bendxMax, bendyMin, bendyMax, axialMin, axialMax };
        //    diagramChart.Azimuth = -125;
        //    diagramChart.Elevation = 35;
        //    ///
        //    //DiagramGraphics.DrwColor = "black";
        //    //PointF pt1 = new PointF(0, 0);
        //    //PointF pt2 = new PointF(DiagramCanvWidth, DiagramCanvHeight);
        //    //await DiagramGraphics.DrawRecAsync(pt1, pt2);
        //    ///
        //    SetGraphicLayout(DiagramCanvWidth, DiagramCanvHeight, 0, diagramChart, scaleLimits);
        //    await diagramChart.AddChartStyle(DiagramGraphics);
        //    DiagramGraphics.DrwColor = "red";
        //    diagramChart.ChartArea = new RectangleF(0, 0, DiagramCanvWidth, DiagramCanvHeight);
        //    SetGraphicLayout(DiagramCanvWidth, DiagramCanvHeight, 0, diagramChart, scaleLimits);
        //    diagramChart.Azimuth = -125;
        //    diagramChart.Elevation = 35;
        //    Matrix3 m = new Matrix3();
        //    m = Matrix3.AzimuthElevation(diagramChart.Elevation, diagramChart.Azimuth);
        //    int n = 0;
        //    foreach (KeyValuePair<float, List<float[]>> chartPoint in ColumnInter.BiaxialChartTable)
        //    {
        //        List<float[]> data = chartPoint.Value;
        //        List<float> bendingx = data[0].ToList();
        //        List<float> bendingy = data[1].ToList();
        //        List<float> axial = data[2].ToList();
        //        Point3[] pts = new Point3[bendingx.Count];
        //        for (int i = 0; i < bendingx.Count; i++)
        //        {
        //            pts[i] = new Point3(bendingx[i], bendingy[i], axial[i], 1);
        //            pts[i].Transform(m, diagramChart);
        //        }

        //        for (int j = 0; j < pts.Length - 1; j++)
        //        {
        //            await DiagramGraphics.DrawLineAsync(pts[j].X, pts[j].Y, pts[j + 1].X, pts[j + 1].Y);
        //        }
        //        n++;
        //    }
        //}
        //#endregion
        public void DrawBiaxialGraphics()
        {
            BiaxialGraphics               = new DovDrawings(biaxialContext);
            BiaxialGraphics.DrwColor      = "white";
            BiaxialGraphics.LineThickness = 3f;
            biaxialChart.ChartArea        = new RectangleF(0, 0, BiaxialCanvWidth, BiaxialCanvHeight);
            bool  start    = true;
            float axialMax = 5;
            float axialMin = -5;
            float bendxMax = 6;
            float bendxMin = -6;
            float bendyMax = 4;
            float bendyMin = -4;

            foreach (KeyValuePair <float, List <float[]> > chartPoint in ColumnInter.BiaxialChartTable)
            {
                List <float[]> data     = chartPoint.Value;
                List <float>   bendingx = data[0].ToList();
                bendingx = bendingx.OrderBy(o => o).ToList();
                List <float> bendingy = data[1].ToList();
                bendingy = bendingy.OrderBy(o => o).ToList();
                List <float> axial = data[2].ToList();
                axial = axial.OrderBy(o => o).ToList();
                if (start)
                {
                    axialMin = axial.First();
                    axialMax = axial.Last();
                    bendxMin = bendingx.First();
                    bendxMax = bendingx.Last();
                    bendyMin = bendingy.First();
                    bendyMax = bendingy.Last();
                    start    = false;
                }
                else
                {
                    if (axialMin > axial.First())
                    {
                        axialMin = axial.First();
                    }
                    if (axialMax < axial.Last())
                    {
                        axialMax = axial.Last();
                    }
                    if (bendxMin > bendingx.First())
                    {
                        bendxMin = bendingx.First();
                    }
                    if (bendxMax < bendingx.Last())
                    {
                        bendxMax = bendingx.Last();
                    }
                    if (bendyMin > bendingy.First())
                    {
                        bendyMin = bendingy.First();
                    }
                    if (bendyMax < bendingy.Last())
                    {
                        bendyMax = bendingy.Last();
                    }
                }
            }
            biaxialChart.XTick = (bendxMax - bendxMin) / 10;
            biaxialChart.YTick = (bendyMax - bendyMin) / 10;
            biaxialChart.ZTick = (axialMax - axialMin) / 10;
            float[] scaleLimits = new float[] { bendxMin, bendxMax, bendyMin, bendyMax, axialMin, axialMax };
            biaxialChart.Azimuth   = -125;
            biaxialChart.Elevation = 35;
            ///
            SetGraphicLayout(BiaxialCanvWidth, BiaxialCanvHeight, 0, biaxialChart, scaleLimits);
            biaxialChart.AddChartStyle(BiaxialGraphics);
            BiaxialGraphics.DrwColor      = "red";
            BiaxialGraphics.LineThickness = 3f;
            biaxialChart.ChartArea        = new RectangleF(0, 0, BiaxialCanvWidth, BiaxialCanvHeight);
            SetGraphicLayout(BiaxialCanvWidth, BiaxialCanvHeight, 0, biaxialChart, scaleLimits);
            biaxialChart.Azimuth   = -125;
            biaxialChart.Elevation = 35;
            Matrix3 m = new Matrix3();

            m = Matrix3.AzimuthElevation(biaxialChart.Elevation, biaxialChart.Azimuth);
            foreach (KeyValuePair <float, List <float[]> > chartPoint in ColumnInter.BiaxialChartTable)
            {
                List <float[]> data     = chartPoint.Value;
                List <float>   bendingx = data[0].ToList();
                List <float>   bendingy = data[1].ToList();
                List <float>   axial    = data[2].ToList();
                Point3[]       pts      = new Point3[bendingx.Count];
                for (int i = 0; i < bendingx.Count; i++)
                {
                    pts[i] = new Point3(bendingx[i], bendingy[i], axial[i], 1);
                    pts[i].Transform(m, biaxialChart);
                }
                for (int j = 0; j < pts.Length - 1; j++)
                {
                    BiaxialGraphics.DrawLine(pts[j].X, pts[j].Y, pts[j + 1].X, pts[j + 1].Y);
                }
            }
        }