首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

dotnetCHARTING.dll 图表控件的施用

2012-07-04 
dotnetCHARTING.dll 图表控件的使用下面的两种方法用一个就行,第二种有几个方法是自己画图的类,不依靠控件

dotnetCHARTING.dll 图表控件的使用

下面的两种方法用一个就行,第二种有几个方法是自己画图的类,不依靠控件的(不过画出的图表不好看,仅参考学习)

方法一、Charting类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using dotnetCHARTING;


    public class Charting
    {

        #region 共有变量

        /// <summary>
        /// 图片存放路径
        /// </summary>
        public string PhaysicalImagePath { get; set; }

        /// <summary>
        /// 标题
        /// </summary>
        public string Title { get; set; }

        /// <summary>
        /// X轴名称
        /// </summary>
        public string XName { get; set; }

        /// <summary>
        /// Y轴名称
        /// </summary>
        public string YName { get; set; }

        /// <summary>
        /// 图例名称
        /// </summary>
        public string SeriseName { get; set; }

        /// <summary>
        /// 宽度
        /// </summary>
        public int SeriseWidth { get; set; }

        /// <summary>
        /// 高度
        /// </summary>
        public int SeriseHeight { get; set; }

        /// <summary>
        /// 数据源
        /// </summary>
        public DataTable DataSoure { get; set; }

        public bool IsUse3D { get; set; }

        public ChartType type { get; set; }
        #endregion

        public Charting() { }

        /// <summary>
        /// 柱形图
        /// </summary>
        /// <returns></returns>
        public void CreateCombo(dotnetCHARTING.Chart Chart1)
        {
            Chart1.Title = Title;
            Chart1.XAxis.Label.Text = XName;
            Chart1.YAxis.Label.Text = this.YName;
            Chart1.TempDirectory = this.PhaysicalImagePath;
            Chart1.Width = this.SeriseWidth;
            Chart1.Height = this.SeriseHeight;
            Chart1.Type = ChartType.Combo;

            Chart1.Series.Type = SeriesType.Cylinder;
            Chart1.Series.Name = this.SeriseName;
            Chart1.Series.Data = this.DataSoure;
            Chart1.SeriesCollection.Add();
            Chart1.DefaultSeries.DefaultElement.ShowValue = true;
            Chart1.ShadingEffect = true;
            Chart1.Use3D = IsUse3D;
            Chart1.Series.DefaultElement.ShowValue = true;
        }

        /// <summary>
        /// 饼图
        /// </summary>
        /// <returns></returns>
        public void CreatePie(dotnetCHARTING.Chart Chart1)
        {
            Chart1.Title = Title;
            Chart1.XAxis.Label.Text = XName;
            Chart1.YAxis.Label.Text = this.YName;
            Chart1.TempDirectory = this.PhaysicalImagePath;
            Chart1.Width = this.SeriseWidth;
            Chart1.Height = this.SeriseHeight;
            Chart1.Type = ChartType.Pie;
            Chart1.Series.Type = SeriesType.Cylinder;
            Chart1.Series.Name = this.SeriseName;
            Chart1.ShadingEffect = true;
            Chart1.Use3D = IsUse3D;
            Chart1.DefaultSeries.DefaultElement.Transparency = 20;
            Chart1.DefaultSeries.DefaultElement.ShowValue = true;
            Chart1.PieLabelMode = PieLabelMode.Outside;
            Chart1.SeriesCollection.Add(getArrayData());
            Chart1.Series.DefaultElement.ShowValue = true;
        }

        private SeriesCollection getArrayData()
        {
            SeriesCollection SC = new SeriesCollection();
            DataTable dt = this.DataSoure;
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                Series s = new Series();
                s.Name = dt.Rows[i][0].ToString();

                Element e = new Element();

                // 每元素的名称
                e.Name = dt.Rows[i][0].ToString();

                // 每元素的大小数值
                e.YValue = Convert.ToDouble(dt.Rows[i][1].ToString());

                s.Elements.Add(e);
                SC.Add(s);
            }
            return SC;

        }

        /// <summary>
        /// 曲线图
        /// </summary>
        /// <returns></returns>
        public void CreateLine(dotnetCHARTING.Chart Chart1)
        {
            Chart1.Title = Title;
            Chart1.XAxis.Label.Text = XName;
            Chart1.YAxis.Label.Text = this.YName;
            Chart1.TempDirectory = this.PhaysicalImagePath;
            Chart1.Width = this.SeriseWidth;
            Chart1.Height = this.SeriseHeight;

            Chart1.Type = ChartType.Combo;
            //此处一定要用DefaultSeries.Type = SeriesType.Line 否则没效果
            Chart1.DefaultSeries.Type = SeriesType.Line;
            Chart1.Series.Name = this.SeriseName;
            Chart1.Series.Data = this.DataSoure;

            Chart1.SeriesCollection.Add();

            Chart1.DefaultSeries.DefaultElement.ShowValue = true;
            Chart1.ShadingEffect = false;
            Chart1.Use3D = IsUse3D;
            Chart1.Series.DefaultElement.ShowValue = true;
        }

    }

 

方法二、ChartDrawUtility类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace SupperCard.Common
{
    public class ChartDrawUtility
    {
        public static void DrawYuan(int[] iXiaoSH, string[] sMoth)
        {
            //int[] iXiaoSH = new int[12] { 16, 10, 20, 8, 10, 15, 20, 10, 12, 15, 20, 13 };
            //定义一个数组,用以存放从数据库中读取的销售数据

            //string[] sMoth = new string[12] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
            //定义一个数组,用以存放从数据库中读取的销售月份

            //读取Table01数据表中的各条数据,并存放在先前定义的二个数组中

            Bitmap bm = new Bitmap(600, 300);
            //创建一个长度为600,宽带为300的Bitmap实例

            Graphics g;
            g = Graphics.FromImage(bm);
            g.Clear(Color.Snow);
      
            g.DrawString(" ××××季度消费情况一览表", new Font("宋体", 16), Brushes.Black, new Point(5, 5));
        
            //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题

            //以下代码是是实现图01中的右上部区域
            //以上是在图01中为下面绘制定位
            Point myRec = new Point(515, 30);
            Point myDec = new Point(540, 30);
            Point myTxt = new Point(565, 30);
            g.DrawString("单位:元", new Font("宋体", 9), Brushes.Black, new Point(515, 12));
            for (int i = 0; i < sMoth.Length; i++)
            {
                g.FillRectangle(new SolidBrush(GetColor(i)), myRec.X, myRec.Y, 20, 10);
                //填充小方块

                g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10);
                //绘制小方块

                g.DrawString(sMoth[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec);
                //绘制小方块右边的文字

                g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, myTxt);
                myRec.Y += 15;
                myDec.Y += 15;
                myTxt.Y += 15;
            }

            //以下代码是根据从数据库中得到的数值大小,绘制扇型,并以相应色彩填充扇型,//从而构成图01中的Pie图
            int iTatal = 0;
            float fCurrentAngle = 0;
            float fStartAngle = 0;
            for (int i = 0; i < iXiaoSH.Length; i++)
            {
                iTatal = iTatal + iXiaoSH[i];
            }
            for (int i = 0; i < iXiaoSH.Length; i++)
            {
                //以下代码是获得要绘制扇型的开始角度
                if (i == iXiaoSH.Length - 1)
                {
                    fCurrentAngle = 360 - fStartAngle;
                }
                else
                {
                    int iTemp = iXiaoSH[i];
                    fCurrentAngle = (iTemp * 360) / iTatal;
                }
                //根据参数绘制扇型

                g.DrawPie(Pens.Black, 100,345, 250, 250, fStartAngle, fCurrentAngle);
                //以指定色彩填充绘制的扇型

                //g.DrawString("HELLO", new Font(new Font("宋体", 9), FontStyle.Regular), Brushes.Black, new PointF(120, 60));

                g.FillPie(new SolidBrush(GetColor(i)), 100, 40, 250, 250, fStartAngle, fCurrentAngle);
                fStartAngle += fCurrentAngle;
            }
            //画出图片的边框
            Pen p = new Pen(Color.Green, 2);
            g.DrawRectangle(p, 1, 1, 598, 298);

            //向客户端输出数据流,并以此数据流形成Jpeg图片
            bm.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Jpeg);
           
        }

        public static Color GetColor(int itemIndex)
        {
            Color MyColor;
            int i = itemIndex;
            switch (i)
            {
                case 0:
                    MyColor = Color.Green;
                    return MyColor;
                case 1:
                    MyColor = Color.Red;
                    return MyColor;
                case 2:
                    MyColor = Color.Yellow;
                    return MyColor;
                case 3:
                    MyColor = Color.Blue;
                    return MyColor;
                case 4:
                    MyColor = Color.Orange;
                    return MyColor;
                case 5:
                    MyColor = Color.Aqua;
                    return MyColor;
                case 6:
                    MyColor = Color.SkyBlue;
                    return MyColor;
                case 7:
                    MyColor = Color.DeepPink;
                    return MyColor;
                case 8:
                    MyColor = Color.Azure;
                    return MyColor;
                case 9:
                    MyColor = Color.Brown;
                    return MyColor;
                case 10:
                    MyColor = Color.Pink;
                    return MyColor;
                case 11:
                    MyColor = Color.BurlyWood;
                    return MyColor;
                case 12:
                    MyColor = Color.Chartreuse;
                    return MyColor;
                default:
                    MyColor = Color.Pink;
                    return MyColor;
            }
        }

        public static void DrawZhu(int[] iXiaoSH, string[] sMoth)
        {
            //int[] iXiaoSH = new int[12] { 16, 10, 20, 8, 10, 15, 20, 10, 12, 15, 20, 13 };
            ////定义一个数组,用以存放从数据库中读取的销售数据

            //string[] sMoth = new string[12] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
            ////定义一个数组,用以存放从数据库中读取的销售月份

            //  int iIndex = 0 ;
            //  while ( myOleDbDataReader.Read ( ) )
            //  {
            //      iXiaoSH [ iIndex ] = myOleDbDataReader.GetInt32 ( 1 ) ;
            //      sMoth [ iIndex ] = myOleDbDataReader.GetInt32 ( 0 ) . ToString ( ) + "月" ;
            //     iIndex++ ;
            // }
            ////读取Table01数据表中的各条数据,并存放在先前定义的二个数组中

            //  myConn . Close ( ) ;
            //   myOleDbDataReader . Close ( ) ;
            //关闭各种资源

            Bitmap bm = new Bitmap(600, 250);
            //创建一个长度为600,宽带为250的Bitmap实例

            Graphics g;
            g = Graphics.FromImage(bm);
            //由此Bitmap实例创建Graphic实例

            g.Clear(Color.Snow);
            //用Snow色彩为背景色填充此绘画图面

            g.DrawString(" 季/年度消费情况一览表", new Font("黑体", 16), Brushes.Black, new Point(5, 5));
            //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题

            //以下代码是是实现图右上部
            Point myRec = new Point(535, 30);
            Point myDec = new Point(560, 26);

            //以上是在图01中为下面绘制定位
            g.DrawString("单位:元", new Font("宋体", 9), Brushes.Black, new Point(525, 12));


            for (int i = 0; i < sMoth.Length; i++)
            {
                g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10);
                //绘制小方块

                g.FillRectangle(new SolidBrush(GetColor(i)), myRec.X, myRec.Y, 20, 10);
                //填充小方块

                g.DrawString(sMoth[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec);
                //绘制小方块右边的文字

                myRec.Y += 15;
                myDec.Y += 15;
            }

            //以下代码是绘制Bar图,及其销售数量
            int iBarWidth = 40;
            int scale = 10;
            for (int i = 0; i < iXiaoSH.Length; i++)
            {
                g.DrawRectangle(Pens.Black, (i * iBarWidth) + 15, 250 - (iXiaoSH[i] * scale), 20, (iXiaoSH[i] * scale) + 5);
                //绘制Bar图

                g.FillRectangle(new SolidBrush(GetColor(i)), (i * iBarWidth) + 15, 250 - (iXiaoSH[i] * scale), 20, (iXiaoSH[i] * scale) + 5);
                //以指定的色彩填充Bar图

                g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, (i * iBarWidth) + 20, 235 - (iXiaoSH[i] * scale));
                //显示Bar图代表的数据
            }

            //以下代码是绘制边框,并形成Jpeg文件,供浏览器显示出来
            Pen p = new Pen(Color.Black, 2);
            g.DrawRectangle(p, 1, 1, 598, 345);
            bm.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Gif);

        }

        public static void CreateImage()
        {
            int height = 480, width = 700;
            Bitmap image = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(image);

            try
            {
                //清空图片背景色
                g.Clear(Color.White);

                Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);
                Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular);
                Font font2 = new System.Drawing.Font("Arial", 8, FontStyle.Regular);
                LinearGradientBrush brush = new LinearGradientBrush(
                new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Blue, 1.2f, true);
                g.FillRectangle(Brushes.AliceBlue, 0, 0, width, height);
                Brush brush1 = new SolidBrush(Color.Blue);
                Brush brush2 = new SolidBrush(Color.SaddleBrown);

                g.DrawString("周消费统计折线图", font1, brush1, new PointF(85, 30));
                //画图片的边框线
                g.DrawRectangle(new Pen(Color.Blue), 0, 0, image.Width - 1, image.Height - 1);

                Pen mypen = new Pen(brush, 1);
                Pen mypen2 = new Pen(Color.Red, 2);
                //绘制线条
                //绘制纵向线条
                int x = 60;
                for (int i = 0; i < 8; i++)
                {
                    g.DrawLine(mypen, x, 80, x, 340);
                    x = x + 80;
                }
                Pen mypen1 = new Pen(Color.Blue, 3);
                x = 60;
                g.DrawLine(mypen1, x, 82, x, 340);

                //绘制横向线条
                int y = 106;
                for (int i = 0; i < 10; i++)
                {
                    g.DrawLine(mypen, 60, y, 620, y);
                    y = y + 26;
                }
                // y = 106;
                g.DrawLine(mypen1, 60, y - 26, 620, y - 26);

                //x轴
                String[] n = { "第一周", "第二周", "第三周", "第四周", "第五周", "第六周", "第七周" };
                x = 45;
                for (int i = 0; i < 7; i++)
                {
                    g.DrawString(n[i].ToString(), font, Brushes.Red, x, 348); //设置文字内容及输出位置
                    x = x + 77;
                }

                //y轴
                String[] m = { "65", " 67", " 123", "89", " 125", " 100", " 75", " 50", " 25" };
                y = 100;
                for (int i = 0; i < 9; i++)
                {
                    g.DrawString(m[i].ToString(), font, Brushes.Red, 10, y); //设置文字内容及输出位置
                    y = y + 26;
                }

                int[] Count1 = new int[7];
                int[] Count2 = new int[7];

                //SqlConnection Con = new SqlConnection("Server=(Local);Database=committeeTraining;Uid=sa;Pwd=eesoft");
                //Con.Open();
                //string cmdtxt2 = "SELECT * FROM ##Count where Company='" + this.ddlTaget.SelectedItem.Text.Trim() + "'";
                //SqlDataAdapter da = new SqlDataAdapter(cmdtxt2, Con);
                //DataSet ds = new DataSet();
                //da.Fill(ds);

                //报名人数
                Count1[0] = 28;// Convert.ToInt32(ds.Tables[0].Rows[0]["count1"].ToString());
                Count1[1] = 50;// Convert.ToInt32(ds.Tables[0].Rows[0]["count3"].ToString());
                Count1[2] = 56;// Convert.ToInt32(ds.Tables[0].Rows[0]["count5"].ToString());
                Count1[3] = 14;// Convert.ToInt32(ds.Tables[0].Rows[0]["count7"].ToString());

                Count1[6] = 38;// Convert.ToInt32(ds.Tables[0].Rows[0]["count9"].ToString()); //全年

                Count1[4] = Count1[0] + Count1[1];
                Count1[5] = Count1[2] + Count1[3];


                //Count2[0] = Convert.ToInt32(ds.Tables[0].Rows[0]["count2"].ToString());
                //Count2[1] = Convert.ToInt32(ds.Tables[0].Rows[0]["count4"].ToString());
                //Count2[2] = Convert.ToInt32(ds.Tables[0].Rows[0]["count6"].ToString());
                //Count2[3] = Convert.ToInt32(ds.Tables[0].Rows[0]["count8"].ToString());

                //Count2[6] = Convert.ToInt32(ds.Tables[0].Rows[0]["count10"].ToString()); //全年

                //Count2[4] = Count2[0] + Count2[1];
                //Count2[5] = Count2[2] + Count2[3];


                //显示折线效果
                Font font3 = new System.Drawing.Font("Arial", 10, FontStyle.Bold);
                SolidBrush mybrush = new SolidBrush(Color.Red);
                Point[] points1 = new Point[7];
                points1[0].X = 60; points1[0].Y = 340 - Count1[0]; //从106纵坐标开始, 到(0, 0)坐标时
                points1[1].X = 140; points1[1].Y = 340 - Count1[1];
                points1[2].X = 220; points1[2].Y = 340 - Count1[2];
                points1[3].X = 300; points1[3].Y = 340 - Count1[3];

                points1[4].X = 380; points1[4].Y = 340 - Count1[4];
                points1[5].X = 460; points1[5].Y = 340 - Count1[5];

                points1[6].X = 540; points1[6].Y = 340 - Count1[6];
                g.DrawLines(mypen2, points1); //绘制折线

                //绘制数字
                g.DrawString(Count1[0].ToString(), font3, Brushes.Red, 58, points1[0].Y - 20);
                g.DrawString(Count1[1].ToString(), font3, Brushes.Red, 138, points1[1].Y - 20);
                g.DrawString(Count1[2].ToString(), font3, Brushes.Red, 218, points1[2].Y - 20);
                g.DrawString(Count1[3].ToString(), font3, Brushes.Red, 298, points1[3].Y - 20);

                g.DrawString(Count1[4].ToString(), font3, Brushes.Red, 378, points1[4].Y - 20);
                g.DrawString(Count1[5].ToString(), font3, Brushes.Red, 458, points1[5].Y - 20);

                g.DrawString(Count1[6].ToString(), font3, Brushes.Red, 538, points1[6].Y - 20);

                //Pen mypen3 = new Pen(Color.Green, 2);
                //Point[] points2 = new Point[7];
                //points2[0].X = 60; points2[0].Y = 340 - Count2[0];
                //points2[1].X = 140; points2[1].Y = 340 - Count2[1];
                //points2[2].X = 220; points2[2].Y = 340 - Count2[2];
                //points2[3].X = 300; points2[3].Y = 340 - Count2[3];

                //points2[4].X = 380; points2[4].Y = 340 - Count2[4];
                //points2[5].X = 460; points2[5].Y = 340 - Count2[5];

                //points2[6].X = 540; points2[6].Y = 340 - Count2[6];
                //g.DrawLines(mypen3, points2); //绘制折线

                //绘制通过人数
                //g.DrawString(Count2[0].ToString(), font3, Brushes.Green, 61, points2[0].Y - 15);
                //g.DrawString(Count2[1].ToString(), font3, Brushes.Green, 131, points2[1].Y - 15);
                //g.DrawString(Count2[2].ToString(), font3, Brushes.Green, 221, points2[2].Y - 15);
                //g.DrawString(Count2[3].ToString(), font3, Brushes.Green, 301, points2[3].Y - 15);

                //g.DrawString(Count2[4].ToString(), font3, Brushes.Green, 381, points2[4].Y - 15);
                //g.DrawString(Count2[5].ToString(), font3, Brushes.Green, 461, points2[5].Y - 15);

                //g.DrawString(Count2[6].ToString(), font3, Brushes.Green, 541, points2[6].Y - 15);

                //绘制标识
                g.DrawRectangle(new Pen(Brushes.Red), 180, 390, 250, 50); //绘制范围框
                g.FillRectangle(Brushes.Red, 270, 402, 20, 10); //绘制小矩形
                g.DrawString("消费金额(单位:元)", font2, Brushes.Red, 292, 400);

                //g.FillRectangle(Brushes.Green, 270, 422, 20, 10);
                //g.DrawString("通过人数", font2, Brushes.Green, 292, 420);

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                System.Web.HttpContext.Current.Response.ClearContent();
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

        public static void CreateImagePerson()
        {
            int height = 480, width = 700;
            Bitmap image = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(image);

            try
            {
                //清空图片背景色
                g.Clear(Color.White);

                Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);
                Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular);
                Font font2 = new System.Drawing.Font("Arial", 8, FontStyle.Regular);
                LinearGradientBrush brush = new LinearGradientBrush(
                new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Blue, 1.2f, true);
                g.FillRectangle(Brushes.AliceBlue, 0, 0, width, height);
                Brush brush1 = new SolidBrush(Color.Blue);
                Brush brush2 = new SolidBrush(Color.SaddleBrown);

                g.DrawString("月考勤统计折线图", font1, brush1, new PointF(85, 30));
                //画图片的边框线
                g.DrawRectangle(new Pen(Color.Blue), 0, 0, image.Width - 1, image.Height - 1);

                Pen mypen = new Pen(brush, 1);
                Pen mypen2 = new Pen(Color.Red, 2);
                //绘制线条
                //绘制纵向线条
                int x = 60;
                for (int i = 0; i < 8; i++)
                {
                    g.DrawLine(mypen, x, 80, x, 340);
                    x = x + 80;
                }
                Pen mypen1 = new Pen(Color.Blue, 3);
                x = 60;
                g.DrawLine(mypen1, x, 82, x, 340);

                //绘制横向线条
                int y = 106;
                for (int i = 0; i < 10; i++)
                {
                    g.DrawLine(mypen, 60, y, 620, y);
                    y = y + 26;
                }
                // y = 106;
                g.DrawLine(mypen1, 60, y - 26, 620, y - 26);

                //x轴
                String[] n = { "第一个月", "第二个月", "第三个月", "第四个月", "第五个月", "第六个月", "第七个月" };
                x = 45;
                for (int i = 0; i < 7; i++)
                {
                    g.DrawString(n[i].ToString(), font, Brushes.Red, x, 348); //设置文字内容及输出位置
                    x = x + 77;
                }

                //y轴
                String[] m = { "78", " 88", " 92", "89", " 45", " 89", " 99", " 67", " 100" };
                y = 100;
                for (int i = 0; i < 9; i++)
                {
                    g.DrawString(m[i].ToString(), font, Brushes.Red, 10, y); //设置文字内容及输出位置
                    y = y + 26;
                }

                int[] Count1 = new int[7];
                int[] Count2 = new int[7];

                //SqlConnection Con = new SqlConnection("Server=(Local);Database=committeeTraining;Uid=sa;Pwd=eesoft");
                //Con.Open();
                //string cmdtxt2 = "SELECT * FROM ##Count where Company='" + this.ddlTaget.SelectedItem.Text.Trim() + "'";
                //SqlDataAdapter da = new SqlDataAdapter(cmdtxt2, Con);
                //DataSet ds = new DataSet();
                //da.Fill(ds);

                //报名人数
                Count1[0] = 28;// Convert.ToInt32(ds.Tables[0].Rows[0]["count1"].ToString());
                Count1[1] = 50;// Convert.ToInt32(ds.Tables[0].Rows[0]["count3"].ToString());
                Count1[2] = 56;// Convert.ToInt32(ds.Tables[0].Rows[0]["count5"].ToString());
                Count1[3] = 14;// Convert.ToInt32(ds.Tables[0].Rows[0]["count7"].ToString());

                Count1[6] = 38;// Convert.ToInt32(ds.Tables[0].Rows[0]["count9"].ToString()); //全年

                Count1[4] = Count1[0] + Count1[1];
                Count1[5] = Count1[2] + Count1[3];


                //Count2[0] = Convert.ToInt32(ds.Tables[0].Rows[0]["count2"].ToString());
                //Count2[1] = Convert.ToInt32(ds.Tables[0].Rows[0]["count4"].ToString());
                //Count2[2] = Convert.ToInt32(ds.Tables[0].Rows[0]["count6"].ToString());
                //Count2[3] = Convert.ToInt32(ds.Tables[0].Rows[0]["count8"].ToString());

                //Count2[6] = Convert.ToInt32(ds.Tables[0].Rows[0]["count10"].ToString()); //全年

                //Count2[4] = Count2[0] + Count2[1];
                //Count2[5] = Count2[2] + Count2[3];


                //显示折线效果
                Font font3 = new System.Drawing.Font("Arial", 10, FontStyle.Bold);
                SolidBrush mybrush = new SolidBrush(Color.Red);
                Point[] points1 = new Point[7];
                points1[0].X = 60; points1[0].Y = 340 - Count1[0]; //从106纵坐标开始, 到(0, 0)坐标时
                points1[1].X = 140; points1[1].Y = 340 - Count1[1];
                points1[2].X = 220; points1[2].Y = 340 - Count1[2];
                points1[3].X = 300; points1[3].Y = 340 - Count1[3];

                points1[4].X = 380; points1[4].Y = 340 - Count1[4];
                points1[5].X = 460; points1[5].Y = 340 - Count1[5];

                points1[6].X = 540; points1[6].Y = 340 - Count1[6];
                g.DrawLines(mypen2, points1); //绘制折线

                //绘制数字
                g.DrawString(Count1[0].ToString(), font3, Brushes.Red, 58, points1[0].Y - 20);
                g.DrawString(Count1[1].ToString(), font3, Brushes.Red, 138, points1[1].Y - 20);
                g.DrawString(Count1[2].ToString(), font3, Brushes.Red, 218, points1[2].Y - 20);
                g.DrawString(Count1[3].ToString(), font3, Brushes.Red, 298, points1[3].Y - 20);

                g.DrawString(Count1[4].ToString(), font3, Brushes.Red, 378, points1[4].Y - 20);
                g.DrawString(Count1[5].ToString(), font3, Brushes.Red, 458, points1[5].Y - 20);

                g.DrawString(Count1[6].ToString(), font3, Brushes.Red, 538, points1[6].Y - 20);

                //Pen mypen3 = new Pen(Color.Green, 2);
                //Point[] points2 = new Point[7];
                //points2[0].X = 60; points2[0].Y = 340 - Count2[0];
                //points2[1].X = 140; points2[1].Y = 340 - Count2[1];
                //points2[2].X = 220; points2[2].Y = 340 - Count2[2];
                //points2[3].X = 300; points2[3].Y = 340 - Count2[3];

                //points2[4].X = 380; points2[4].Y = 340 - Count2[4];
                //points2[5].X = 460; points2[5].Y = 340 - Count2[5];

                //points2[6].X = 540; points2[6].Y = 340 - Count2[6];
                //g.DrawLines(mypen3, points2); //绘制折线

                //绘制通过人数
                //g.DrawString(Count2[0].ToString(), font3, Brushes.Green, 61, points2[0].Y - 15);
                //g.DrawString(Count2[1].ToString(), font3, Brushes.Green, 131, points2[1].Y - 15);
                //g.DrawString(Count2[2].ToString(), font3, Brushes.Green, 221, points2[2].Y - 15);
                //g.DrawString(Count2[3].ToString(), font3, Brushes.Green, 301, points2[3].Y - 15);

                //g.DrawString(Count2[4].ToString(), font3, Brushes.Green, 381, points2[4].Y - 15);
                //g.DrawString(Count2[5].ToString(), font3, Brushes.Green, 461, points2[5].Y - 15);

                //g.DrawString(Count2[6].ToString(), font3, Brushes.Green, 541, points2[6].Y - 15);

                //绘制标识
                g.DrawRectangle(new Pen(Brushes.Red), 180, 390, 250, 50); //绘制范围框
                g.FillRectangle(Brushes.Red, 270, 402, 20, 10); //绘制小矩形
                g.DrawString("出勤率", font2, Brushes.Red, 292, 400);

                //g.FillRectangle(Brushes.Green, 270, 422, 20, 10);
                //g.DrawString("通过人数", font2, Brushes.Green, 292, 420);

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                System.Web.HttpContext.Current.Response.ClearContent();
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

        public static void CreateImagedep()
        {
            int height = 480, width = 700;
            Bitmap image = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(image);

            try
            {
                //清空图片背景色
                g.Clear(Color.White);

                Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);
                Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular);
                Font font2 = new System.Drawing.Font("Arial", 8, FontStyle.Regular);
                LinearGradientBrush brush = new LinearGradientBrush(
                new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Blue, 1.2f, true);
                g.FillRectangle(Brushes.AliceBlue, 0, 0, width, height);
                Brush brush1 = new SolidBrush(Color.Blue);
                Brush brush2 = new SolidBrush(Color.SaddleBrown);

                g.DrawString("财务部出勤统计折线图", font1, brush1, new PointF(85, 30));
                //画图片的边框线
                g.DrawRectangle(new Pen(Color.Blue), 0, 0, image.Width - 1, image.Height - 1);

                Pen mypen = new Pen(brush, 1);
                Pen mypen2 = new Pen(Color.Red, 2);
                //绘制线条
                //绘制纵向线条
                int x = 60;
                for (int i = 0; i < 8; i++)
                {
                    g.DrawLine(mypen, x, 80, x, 340);
                    x = x + 80;
                }
                Pen mypen1 = new Pen(Color.Blue, 3);
                x = 60;
                g.DrawLine(mypen1, x, 82, x, 340);

                //绘制横向线条
                int y = 106;
                for (int i = 0; i < 10; i++)
                {
                    g.DrawLine(mypen, 60, y, 620, y);
                    y = y + 26;
                }
                // y = 106;
                g.DrawLine(mypen1, 60, y - 26, 620, y - 26);

                //x轴
                String[] n = { "第一个月", "第二个月", "第三个月", "第四个月", "第五个月", "第六个月", "第七个月" };
                x = 45;
                for (int i = 0; i < 7; i++)
                {
                    g.DrawString(n[i].ToString(), font, Brushes.Red, x, 348); //设置文字内容及输出位置
                    x = x + 77;
                }

                //y轴
                String[] m = { "65", " 67", " 123", "89", " 125", " 100", " 75", " 50", " 25" };
                y = 100;
                for (int i = 0; i < 9; i++)
                {
                    g.DrawString(m[i].ToString(), font, Brushes.Red, 10, y); //设置文字内容及输出位置
                    y = y + 26;
                }

                int[] Count1 = new int[7];
                int[] Count2 = new int[7];

                //SqlConnection Con = new SqlConnection("Server=(Local);Database=committeeTraining;Uid=sa;Pwd=eesoft");
                //Con.Open();
                //string cmdtxt2 = "SELECT * FROM ##Count where Company='" + this.ddlTaget.SelectedItem.Text.Trim() + "'";
                //SqlDataAdapter da = new SqlDataAdapter(cmdtxt2, Con);
                //DataSet ds = new DataSet();
                //da.Fill(ds);

                //报名人数
                Count1[0] = 28;// Convert.ToInt32(ds.Tables[0].Rows[0]["count1"].ToString());
                Count1[1] = 50;// Convert.ToInt32(ds.Tables[0].Rows[0]["count3"].ToString());
                Count1[2] = 56;// Convert.ToInt32(ds.Tables[0].Rows[0]["count5"].ToString());
                Count1[3] = 14;// Convert.ToInt32(ds.Tables[0].Rows[0]["count7"].ToString());

                Count1[6] = 38;// Convert.ToInt32(ds.Tables[0].Rows[0]["count9"].ToString()); //全年

                Count1[4] = Count1[0] + Count1[1];
                Count1[5] = Count1[2] + Count1[3];


                //Count2[0] = Convert.ToInt32(ds.Tables[0].Rows[0]["count2"].ToString());
                //Count2[1] = Convert.ToInt32(ds.Tables[0].Rows[0]["count4"].ToString());
                //Count2[2] = Convert.ToInt32(ds.Tables[0].Rows[0]["count6"].ToString());
                //Count2[3] = Convert.ToInt32(ds.Tables[0].Rows[0]["count8"].ToString());

                //Count2[6] = Convert.ToInt32(ds.Tables[0].Rows[0]["count10"].ToString()); //全年

                //Count2[4] = Count2[0] + Count2[1];
                //Count2[5] = Count2[2] + Count2[3];


                //显示折线效果
                Font font3 = new System.Drawing.Font("Arial", 10, FontStyle.Bold);
                SolidBrush mybrush = new SolidBrush(Color.Red);
                Point[] points1 = new Point[7];
                points1[0].X = 60; points1[0].Y = 340 - Count1[0]; //从106纵坐标开始, 到(0, 0)坐标时
                points1[1].X = 140; points1[1].Y = 340 - Count1[1];
                points1[2].X = 220; points1[2].Y = 340 - Count1[2];
                points1[3].X = 300; points1[3].Y = 340 - Count1[3];

                points1[4].X = 380; points1[4].Y = 340 - Count1[4];
                points1[5].X = 460; points1[5].Y = 340 - Count1[5];

                points1[6].X = 540; points1[6].Y = 340 - Count1[6];
                g.DrawLines(mypen2, points1); //绘制折线

                //绘制数字
                g.DrawString(Count1[0].ToString(), font3, Brushes.Red, 58, points1[0].Y - 20);
                g.DrawString(Count1[1].ToString(), font3, Brushes.Red, 138, points1[1].Y - 20);
                g.DrawString(Count1[2].ToString(), font3, Brushes.Red, 218, points1[2].Y - 20);
                g.DrawString(Count1[3].ToString(), font3, Brushes.Red, 298, points1[3].Y - 20);

                g.DrawString(Count1[4].ToString(), font3, Brushes.Red, 378, points1[4].Y - 20);
                g.DrawString(Count1[5].ToString(), font3, Brushes.Red, 458, points1[5].Y - 20);

                g.DrawString(Count1[6].ToString(), font3, Brushes.Red, 538, points1[6].Y - 20);

                //Pen mypen3 = new Pen(Color.Green, 2);
                //Point[] points2 = new Point[7];
                //points2[0].X = 60; points2[0].Y = 340 - Count2[0];
                //points2[1].X = 140; points2[1].Y = 340 - Count2[1];
                //points2[2].X = 220; points2[2].Y = 340 - Count2[2];
                //points2[3].X = 300; points2[3].Y = 340 - Count2[3];

                //points2[4].X = 380; points2[4].Y = 340 - Count2[4];
                //points2[5].X = 460; points2[5].Y = 340 - Count2[5];

                //points2[6].X = 540; points2[6].Y = 340 - Count2[6];
                //g.DrawLines(mypen3, points2); //绘制折线

                //绘制通过人数
                //g.DrawString(Count2[0].ToString(), font3, Brushes.Green, 61, points2[0].Y - 15);
                //g.DrawString(Count2[1].ToString(), font3, Brushes.Green, 131, points2[1].Y - 15);
                //g.DrawString(Count2[2].ToString(), font3, Brushes.Green, 221, points2[2].Y - 15);
                //g.DrawString(Count2[3].ToString(), font3, Brushes.Green, 301, points2[3].Y - 15);

                //g.DrawString(Count2[4].ToString(), font3, Brushes.Green, 381, points2[4].Y - 15);
                //g.DrawString(Count2[5].ToString(), font3, Brushes.Green, 461, points2[5].Y - 15);

                //g.DrawString(Count2[6].ToString(), font3, Brushes.Green, 541, points2[6].Y - 15);

                //绘制标识
                g.DrawRectangle(new Pen(Brushes.Red), 180, 390, 250, 50); //绘制范围框
                g.FillRectangle(Brushes.Red, 270, 402, 20, 10); //绘制小矩形
                g.DrawString("出勤率", font2, Brushes.Red, 292, 400);

                //g.FillRectangle(Brushes.Green, 270, 422, 20, 10);
                //g.DrawString("通过人数", font2, Brushes.Green, 292, 420);

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                System.Web.HttpContext.Current.Response.ClearContent();
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

        public static void CreateImageShop()
        {
            int height = 480, width = 700;
            Bitmap image = new Bitmap(width, height);
            Graphics g = Graphics.FromImage(image);

            try
            {
                //清空图片背景色
                g.Clear(Color.White);

                Font font = new System.Drawing.Font("Arial", 9, FontStyle.Regular);
                Font font1 = new System.Drawing.Font("宋体", 20, FontStyle.Regular);
                Font font2 = new System.Drawing.Font("Arial", 8, FontStyle.Regular);
                LinearGradientBrush brush = new LinearGradientBrush(
                new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.Blue, 1.2f, true);
                g.FillRectangle(Brushes.AliceBlue, 0, 0, width, height);
                Brush brush1 = new SolidBrush(Color.Blue);
                Brush brush2 = new SolidBrush(Color.SaddleBrown);

                g.DrawString("咖啡每日销售趋线图", font1, brush1, new PointF(85, 30));
                //画图片的边框线
                g.DrawRectangle(new Pen(Color.Blue), 0, 0, image.Width - 1, image.Height - 1);

                Pen mypen = new Pen(brush, 1);
                Pen mypen2 = new Pen(Color.Red, 2);
                //绘制线条
                //绘制纵向线条
                int x = 60;
                for (int i = 0; i < 8; i++)
                {
                    g.DrawLine(mypen, x, 80, x, 340);
                    x = x + 80;
                }
                Pen mypen1 = new Pen(Color.Blue, 3);
                x = 60;
                g.DrawLine(mypen1, x, 82, x, 340);

                //绘制横向线条
                int y = 106;
                for (int i = 0; i < 10; i++)
                {
                    g.DrawLine(mypen, 60, y, 620, y);
                    y = y + 26;
                }
                // y = 106;
                g.DrawLine(mypen1, 60, y - 26, 620, y - 26);

                //x轴
                String[] n = { "2010-12-12", "12-13", "12-14", "12-15", "12-16", "12-17", "12-18" };
                x = 45;
                for (int i = 0; i < 7; i++)
                {
                    g.DrawString(n[i].ToString(), font, Brushes.Red, x, 348); //设置文字内容及输出位置
                    x = x + 77;
                }

                //y轴
                String[] m = { "30", " 50", " 80", "100", " 130", " 150", " 180", "210", "230" };
                y = 100;
                for (int i = m.Length-1; i >0; i--)
                {
                    g.DrawString(m[i].ToString(), font, Brushes.Red, 10, y); //设置文字内容及输出位置
                    y = y + 26;
                }

                int[] Count1 = new int[7];
                int[] Count2 = new int[7];

                //SqlConnection Con = new SqlConnection("Server=(Local);Database=committeeTraining;Uid=sa;Pwd=eesoft");
                //Con.Open();
                //string cmdtxt2 = "SELECT * FROM ##Count where Company='" + this.ddlTaget.SelectedItem.Text.Trim() + "'";
                //SqlDataAdapter da = new SqlDataAdapter(cmdtxt2, Con);
                //DataSet ds = new DataSet();
                //da.Fill(ds);

                //报名人数
                Count1[0] = 28;// Convert.ToInt32(ds.Tables[0].Rows[0]["count1"].ToString());
                Count1[1] = 60;// Convert.ToInt32(ds.Tables[0].Rows[0]["count3"].ToString());
                Count1[2] = 73;// Convert.ToInt32(ds.Tables[0].Rows[0]["count5"].ToString());
                Count1[3] =67;// Convert.ToInt32(ds.Tables[0].Rows[0]["count7"].ToString());

                Count1[6] = 98;// Convert.ToInt32(ds.Tables[0].Rows[0]["count9"].ToString()); //全年

                Count1[4] = Count1[0] + Count1[1];
                Count1[5] = Count1[2] + Count1[3];


                //Count2[0] = Convert.ToInt32(ds.Tables[0].Rows[0]["count2"].ToString());
                //Count2[1] = Convert.ToInt32(ds.Tables[0].Rows[0]["count4"].ToString());
                //Count2[2] = Convert.ToInt32(ds.Tables[0].Rows[0]["count6"].ToString());
                //Count2[3] = Convert.ToInt32(ds.Tables[0].Rows[0]["count8"].ToString());

                //Count2[6] = Convert.ToInt32(ds.Tables[0].Rows[0]["count10"].ToString()); //全年

                //Count2[4] = Count2[0] + Count2[1];
                //Count2[5] = Count2[2] + Count2[3];


                //显示折线效果
                Font font3 = new System.Drawing.Font("Arial", 10, FontStyle.Bold);
                SolidBrush mybrush = new SolidBrush(Color.Red);
                Point[] points1 = new Point[7];
                points1[0].X = 60; points1[0].Y = 340 - Count1[0]; //从106纵坐标开始, 到(0, 0)坐标时
                points1[1].X = 140; points1[1].Y = 340 - Count1[1];
                points1[2].X = 220; points1[2].Y = 340 - Count1[2];
                points1[3].X = 300; points1[3].Y = 340 - Count1[3];

                points1[4].X = 380; points1[4].Y = 340 - Count1[4];
                points1[5].X = 460; points1[5].Y = 340 - Count1[5];

                points1[6].X = 540; points1[6].Y = 340 - Count1[6];
                g.DrawLines(mypen2, points1); //绘制折线

                //绘制数字
                g.DrawString(Count1[0].ToString(), font3, Brushes.Red, 58, points1[0].Y - 20);
                g.DrawString(Count1[1].ToString(), font3, Brushes.Red, 138, points1[1].Y - 20);
                g.DrawString(Count1[2].ToString(), font3, Brushes.Red, 218, points1[2].Y - 20);
                g.DrawString(Count1[3].ToString(), font3, Brushes.Red, 298, points1[3].Y - 20);

                g.DrawString(Count1[4].ToString(), font3, Brushes.Red, 378, points1[4].Y - 20);
                g.DrawString(Count1[5].ToString(), font3, Brushes.Red, 458, points1[5].Y - 20);

                g.DrawString(Count1[6].ToString(), font3, Brushes.Red, 538, points1[6].Y - 20);

                //Pen mypen3 = new Pen(Color.Green, 2);
                //Point[] points2 = new Point[7];
                //points2[0].X = 60; points2[0].Y = 340 - Count2[0];
                //points2[1].X = 140; points2[1].Y = 340 - Count2[1];
                //points2[2].X = 220; points2[2].Y = 340 - Count2[2];
                //points2[3].X = 300; points2[3].Y = 340 - Count2[3];

                //points2[4].X = 380; points2[4].Y = 340 - Count2[4];
                //points2[5].X = 460; points2[5].Y = 340 - Count2[5];

                //points2[6].X = 540; points2[6].Y = 340 - Count2[6];
                //g.DrawLines(mypen3, points2); //绘制折线

                //绘制通过人数
                //g.DrawString(Count2[0].ToString(), font3, Brushes.Green, 61, points2[0].Y - 15);
                //g.DrawString(Count2[1].ToString(), font3, Brushes.Green, 131, points2[1].Y - 15);
                //g.DrawString(Count2[2].ToString(), font3, Brushes.Green, 221, points2[2].Y - 15);
                //g.DrawString(Count2[3].ToString(), font3, Brushes.Green, 301, points2[3].Y - 15);

                //g.DrawString(Count2[4].ToString(), font3, Brushes.Green, 381, points2[4].Y - 15);
                //g.DrawString(Count2[5].ToString(), font3, Brushes.Green, 461, points2[5].Y - 15);

                //g.DrawString(Count2[6].ToString(), font3, Brushes.Green, 541, points2[6].Y - 15);

                //绘制标识
                g.DrawRectangle(new Pen(Brushes.Red), 180, 390, 250, 50); //绘制范围框
                g.FillRectangle(Brushes.Red, 270, 402, 20, 10); //绘制小矩形
                g.DrawString("销售金额(单位:元)", font2, Brushes.Red, 292, 400);

                //g.FillRectangle(Brushes.Green, 270, 422, 20, 10);
                //g.DrawString("通过人数", font2, Brushes.Green, 292, 420);

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                System.Web.HttpContext.Current.Response.ClearContent();
                System.Web.HttpContext.Current.Response.ContentType = "image/Jpeg";
                System.Web.HttpContext.Current.Response.BinaryWrite(ms.ToArray());
            }
            finally
            {
                g.Dispose();
                image.Dispose();
            }
        }

        public static void DrawYuanShop(int[] iXiaoSH, string[] sMoth)
        {
            //int[] iXiaoSH = new int[12] { 16, 10, 20, 8, 10, 15, 20, 10, 12, 15, 20, 13 };
            //定义一个数组,用以存放从数据库中读取的销售数据

            //string[] sMoth = new string[12] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12" };
            //定义一个数组,用以存放从数据库中读取的销售月份

            //读取Table01数据表中的各条数据,并存放在先前定义的二个数组中

            Bitmap bm = new Bitmap(600, 300);
            //创建一个长度为600,宽带为300的Bitmap实例

            Graphics g;
            g = Graphics.FromImage(bm);
            g.Clear(Color.Snow);
      
                g.DrawString("本月销售情况一览表", new Font("宋体", 16), Brushes.Black, new Point(5, 5));
       
            //在绘画图面的指定位置,以指定的字体、指定的颜色绘制指定的字符串。即为图表标题

            //以下代码是是实现图01中的右上部区域
            //以上是在图01中为下面绘制定位
            Point myRec = new Point(485, 30);
            Point myDec = new Point(510, 30);
            Point myTxt = new Point(545, 30);
            g.DrawString("单位:元", new Font("宋体", 9), Brushes.Black, new Point(515, 12));
            for (int i = 0; i < sMoth.Length; i++)
            {
                g.FillRectangle(new SolidBrush(GetColor(i)), myRec.X, myRec.Y, 20, 10);
                //填充小方块

                g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10);
                //绘制小方块

                g.DrawString(sMoth[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec);
                //绘制小方块右边的文字

                g.DrawString(iXiaoSH[i].ToString(), new Font("宋体", 9), Brushes.Black, myTxt);
                myRec.Y += 15;
                myDec.Y += 15;
                myTxt.Y += 15;
            }

            //以下代码是根据从数据库中得到的数值大小,绘制扇型,并以相应色彩填充扇型,//从而构成图01中的Pie图
            int iTatal = 0;
            float fCurrentAngle = 0;
            float fStartAngle = 0;
            for (int i = 0; i < iXiaoSH.Length; i++)
            {
                iTatal = iTatal + iXiaoSH[i];
            }
            for (int i = 0; i < iXiaoSH.Length; i++)
            {
                //以下代码是获得要绘制扇型的开始角度
                if (i == iXiaoSH.Length - 1)
                {
                    fCurrentAngle = 360 - fStartAngle;
                }
                else
                {
                    int iTemp = iXiaoSH[i];
                    fCurrentAngle = (iTemp * 360) / iTatal;
                }
                //根据参数绘制扇型

                g.DrawPie(Pens.Black, 100, 345, 250, 250, fStartAngle, fCurrentAngle);
                //以指定色彩填充绘制的扇型

                //g.DrawString("HELLO", new Font(new Font("宋体", 9), FontStyle.Regular), Brushes.Black, new PointF(120, 60));

                g.FillPie(new SolidBrush(GetColor(i)), 100, 40, 250, 250, fStartAngle, fCurrentAngle);
                fStartAngle += fCurrentAngle;
            }
            //画出图片的边框
            Pen p = new Pen(Color.Green, 2);
            g.DrawRectangle(p, 1, 1, 598, 298);

            //向客户端输出数据流,并以此数据流形成Jpeg图片
            bm.Save(System.Web.HttpContext.Current.Response.OutputStream, ImageFormat.Jpeg);

        }
    }
}

热点排行