SetPolarArea() public method

public SetPolarArea ( ) : Rectangle
return System.Drawing.Rectangle
Exemplo n.º 1
0
        public void AddLegend(Graphics g, DataCollection dc, ChartStyle cs)
        {
            if (dc.DataSeriesList.Count < 1)
            {
                return;
            }
            if (!IsLegendVisible)
            {
                return;
            }
            int numberOfDataSeries = dc.DataSeriesList.Count;

            string[] legendLabels = new string[dc.DataSeriesList.Count];
            int      n            = 0;

            foreach (DataSeries ds in dc.DataSeriesList)
            {
                legendLabels [n] = ds.SeriesName;
                n++;
            }
            //float offSet = 10;
            float xc          = 0f;
            float yc          = 0f;
            SizeF size        = g.MeasureString(legendLabels [0], LegendFont);
            float legendWidth = size.Width;

            for (int i = 0; i < legendLabels.Length; i++)
            {
                size = g.MeasureString(legendLabels [i], LegendFont);
                float tempWidth = size.Width;
                if (legendWidth < tempWidth)
                {
                    legendWidth = tempWidth;
                }
            }
            legendWidth = legendWidth + 50.0f;
            float hWidth       = legendWidth / 2;
            float legendHeight = 18.0f * numberOfDataSeries;
            float hHeight      = legendHeight / 2;

            Rectangle rect = cs.SetPolarArea();

            xc = rect.X + rect.Width + cs.Offset + 15 + hWidth / 2;
            yc = rect.Y + rect.Height / 2;

            DrawLegend(g, xc, yc, hWidth, hHeight, dc, cs);
        }
Exemplo n.º 2
0
        public void AddPolar(Graphics g, ChartStyle cs)
        {
            Rectangle rect = cs.SetPolarArea();
            float     xc   = rect.X + rect.Width / 2;
            float     yc   = rect.Y + rect.Height / 2;

            // Plot lines:
            foreach (DataSeries ds in DataSeriesList)
            {
                Pen aPen = new Pen(ds.LineStyle.LineColor, ds.LineStyle.Thickness);
                aPen.DashStyle = ds.LineStyle.Pattern;
                float r     = ((PointF)ds.PointList [0]).Y;
                float theta = ((PointF)ds.PointList [0]).X;
                float x     = cs.RNorm(r) * (float)Math.Cos(theta * Math.PI / 180) + xc;
                float y     = cs.RNorm(r) * (float)Math.Sin(theta * Math.PI / 180) + yc;

                if (ds.LineStyle.IsVisible == true)
                {
                    PointF ptStart = new PointF(x, y);
                    PointF ptEnd   = new PointF(x, y);
                    for (int i = 1; i < ds.PointList.Count; i++)
                    {
                        r     = ((PointF)ds.PointList [i - 1]).Y;
                        theta = ((PointF)ds.PointList [i - 1]).X;
                        if (cs.AngleDirection == ChartStyle.AngleDirectionEnum.CounterClockWise)
                        {
                            theta = -theta;
                        }
                        x       = cs.RNorm(r) * (float)Math.Cos(theta * Math.PI / 180) + xc;
                        y       = cs.RNorm(r) * (float)Math.Sin(theta * Math.PI / 180) + yc;
                        ptStart = new PointF(x, y);
                        r       = ((PointF)ds.PointList [i]).Y;
                        theta   = ((PointF)ds.PointList [i]).X;
                        if (cs.AngleDirection == ChartStyle.AngleDirectionEnum.CounterClockWise)
                        {
                            theta = -theta;
                        }
                        x     = cs.RNorm(r) * (float)Math.Cos(theta * Math.PI / 180) + xc;
                        y     = cs.RNorm(r) * (float)Math.Sin(theta * Math.PI / 180) + yc;
                        ptEnd = new PointF(x, y);
                        g.DrawLine(aPen, ptStart, ptEnd);
                    }
                }
                aPen.Dispose();
            }
        }
        public void AddPolar(Graphics g, ChartStyle cs)
        {
            Rectangle rect = cs.SetPolarArea ();
            float xc = rect.X + rect.Width / 2;
            float yc = rect.Y + rect.Height / 2;
            // Plot lines:
            foreach (DataSeries ds in DataSeriesList) {
                Pen aPen = new Pen (ds.LineStyle.LineColor, ds.LineStyle.Thickness);
                aPen.DashStyle = ds.LineStyle.Pattern;
                float r = ((PointF)ds.PointList [0]).Y;
                float theta = ((PointF)ds.PointList [0]).X;
                float x = cs.RNorm (r) * (float)Math.Cos (theta * Math.PI / 180) + xc;
                float y = cs.RNorm (r) * (float)Math.Sin (theta * Math.PI / 180) + yc;

                if (ds.LineStyle.IsVisible == true) {
                    PointF ptStart = new PointF (x, y);
                    PointF ptEnd = new PointF (x, y);
                    for (int i = 1; i < ds.PointList.Count; i++) {
                        r = ((PointF)ds.PointList [i - 1]).Y;
                        theta = ((PointF)ds.PointList [i - 1]).X;
                        if (cs.AngleDirection == ChartStyle.AngleDirectionEnum.CounterClockWise) {
                            theta = -theta;
                        }
                        x = cs.RNorm (r) * (float)Math.Cos (theta * Math.PI / 180) + xc;
                        y = cs.RNorm (r) * (float)Math.Sin (theta * Math.PI / 180) + yc;
                        ptStart = new PointF (x, y);
                        r = ((PointF)ds.PointList [i]).Y;
                        theta = ((PointF)ds.PointList [i]).X;
                        if (cs.AngleDirection == ChartStyle.AngleDirectionEnum.CounterClockWise) {
                            theta = -theta;
                        }
                        x = cs.RNorm (r) * (float)Math.Cos (theta * Math.PI / 180) + xc;
                        y = cs.RNorm (r) * (float)Math.Sin (theta * Math.PI / 180) + yc;
                        ptEnd = new PointF (x, y);
                        g.DrawLine (aPen, ptStart, ptEnd);
                    }
                }
                aPen.Dispose ();
            }
        }
Exemplo n.º 4
0
        public void AddLegend(Graphics g, DataCollection dc, ChartStyle cs)
        {
            if (dc.DataSeriesList.Count < 1) {
                return;
            }
            if (!IsLegendVisible) {
                return;
            }
            int numberOfDataSeries = dc.DataSeriesList.Count;
            string[] legendLabels = new string[dc.DataSeriesList.Count];
            int n = 0;
            foreach (DataSeries ds in dc.DataSeriesList) {
                legendLabels [n] = ds.SeriesName;
                n++;
            }
            //float offSet = 10;
            float xc = 0f;
            float yc = 0f;
            SizeF size = g.MeasureString (legendLabels [0], LegendFont);
            float legendWidth = size.Width;
            for (int i = 0; i < legendLabels.Length; i++) {
                size = g.MeasureString (legendLabels [i], LegendFont);
                float tempWidth = size.Width;
                if (legendWidth < tempWidth)
                    legendWidth = tempWidth;
            }
            legendWidth = legendWidth + 50.0f;
            float hWidth = legendWidth / 2;
            float legendHeight = 18.0f * numberOfDataSeries;
            float hHeight = legendHeight / 2;

            Rectangle rect = cs.SetPolarArea ();
            xc = rect.X + rect.Width + cs.Offset + 15 + hWidth / 2;
            yc = rect.Y + rect.Height / 2;

            DrawLegend (g, xc, yc, hWidth, hHeight, dc, cs);
        }