SmartQuant.Charting.Pie.Paint C# (CSharp) Méthode

Paint() public méthode

public Paint ( Pad pad, double xMin, double xMax, double yMin, double yMax ) : void
pad Pad
xMin double
xMax double
yMin double
yMax double
Résultat void
        public virtual void Paint(Pad pad, double xMin, double xMax, double yMin, double yMax)
        {
            var num1 = Pieces.Count > 0 ? Pieces.Cast<TPieItem>().Sum(item => item.Weight) : 0;
            int num2 = pad.ClientX(0.0);
            int num3 = pad.ClientY(100.0);
            int num4 = Math.Abs(pad.ClientX(100.0) - pad.ClientX(0.0));
            int num5 = Math.Abs(pad.ClientY(100.0) - pad.ClientY(0.0));
            int num6 = 0;
            int num7 = 0;
            if (num4 > num5)
            {
                num6 = (num4 - num5) / 2;
                num4 = num5;
            }
            else
            {
                num7 = (num5 - num4) / 2;
                num5 = num4;
            }
            int num8 = num5 / 10;
        //     double num9 ;
            double num10 = 0.0;
            for (int index = 0; index < Pieces.Count; ++index)
            {
                double num11 = ((TPieItem)Pieces[index]).Weight / num1;
                var brush = new SolidBrush(((TPieItem)Pieces[index]).Color);
                double num12 = num10 + (double)Gap;
                num10 += 360.0 * num11;
                double num13 = num10 - num12 + 1.0;
                pad.Graphics.FillPie(brush, num2 + num6 + num8, num3 + num7 + num8, num4 - 2 * num8, num5 - 2 * num8, (int)num12, (int)num13);
            }
            if (EnableContour)
            {
           //     num9 = 0.0;
                double num11 = 0.0;
                for (int index = 0; index < Pieces.Count; ++index)
                {
                    double num12 = ((TPieItem)Pieces[index]).Weight / num1;
                    Pen pen = new Pen(ContourColor);
                    double num13 = num11 + Gap;
                    num11 += 360.0 * num12;
                    double num14 = num11 - num13 + 1.0;
                    pad.Graphics.DrawPie(pen, (float)(num2 + num6 + num8), (float)(num3 + num7 + num8), (float)(num4 - 2 * num8), (float)(num5 - 2 * num8), (float)num13, (float)num14);
                }
            }
     //       num9 = 0.0;
            double num15 = 0.0;
            for (int index = 0; index < Pieces.Count; ++index)
            {
                double num11 = ((TPieItem)Pieces[index]).Weight / num1;
                Pen pen = new Pen(ContourColor);
                double num12 = num15 + Gap;
                num15 += 360.0 * num11;
                double num13 = num12 + (num15 - num12) / 2.0 + 90.0;
                int num14 = (num4 - 2 * num8) / 4;
                int num16 = (num4 - 2 * num8) / 2;
                Math.Sin(Math.PI / 180.0 * num13);
                int num17 = (num4 - 2 * num8) / 2;
                Math.Cos(Math.PI / 180.0 * num13);
                int num18 = (num4 - 2 * num8) / 2;
                int num19 = (num4 - 2 * num8) / 2 + 10;
                int x1 = (int)((double)(num2 + num6 + num8 + (num4 - 2 * num8) / 2) + (double)num18 * Math.Sin(Math.PI / 180.0 * num13));
                int y1 = (int)((double)(num3 + num7 + num8 + (num4 - 2 * num8) / 2) - (double)num18 * Math.Cos(Math.PI / 180.0 * num13));
                int num20 = (int)((double)(num2 + num6 + num8 + (num4 - 2 * num8) / 2) + (double)num19 * Math.Sin(Math.PI / 180.0 * num13));
                int num21 = (int)((double)(num3 + num7 + num8 + (num4 - 2 * num8) / 2) - (double)num19 * Math.Cos(Math.PI / 180.0 * num13));
                Font font = new Font("Arial", 8f);
                pad.Graphics.DrawLine(new Pen(Color.Gray), x1, y1, num20, num21);
                string str = ((TPieItem)Pieces[index]).Text.Replace("&%", (num11 * 100.0).ToString(Format));
                if (num20 > num2 + num6 + num4 / 2)
                {
                    pad.Graphics.DrawLine(new Pen(Color.Gray), num20, num21, num20 + 5, num21);
                    SizeF sizeF = pad.Graphics.MeasureString(str, font);
                    pad.Graphics.DrawString(str, font, (Brush)new SolidBrush(Color.Black), (float)(num20 + 5), (float)num21 - sizeF.Height / 2f);
                }
                else
                {
                    pad.Graphics.DrawLine(new Pen(Color.Gray), num20, num21, num20 - 5, num21);
                    SizeF sizeF = pad.Graphics.MeasureString(str, font);
                    pad.Graphics.DrawString(str, font, (Brush)new SolidBrush(Color.Black), (float)(num20 - 5) - sizeF.Width, (float)num21 - sizeF.Height / 2f);
                }
            }
        }