读书人

.net绘图操作5

发布时间: 2012-12-28 10:29:05 作者: rapoo

.net绘图操作五

统计图是信息管理系统常用的功能,常用的有饼图、柱形图、拆线图等。饼图用来表示各部分比例,柱形图用来表示各部分的比较,拆线图用来表示发展趋势,另外还有其他一些具有特殊功能的图示。本小节将以二维饼图为例说明通过.NET GDI+来绘制统计图的原理。

用户可以使用FillPie来绘制饼块,多个饼块拼接在一起就形成了圆饼效果。其基本算法就是每个部分角度的计算,在总共360°的条件下,每个部分会占多少度。为了方便起见,本例的数据源采用数组,在实例应用过程中,数组数据可以来自数据库,具体代码如下:

?

 int[] data = { 100, 200, 300, 460 };        Color[] colors = { Color.Green, Color.Blue, Color.Tomato, Color.Yellow };        //创建画布        Bitmap bm = new Bitmap(400, 400);        //绘图区        Graphics g = Graphics.FromImage(bm);        //清理绘图区填充为白色        g.Clear(Color.Black);        //在图片区写字        g.DrawString("饼图测试", new Font("宋体", 16), Brushes.Red, new PointF(5, 5));        float total = 0;        foreach (int i in data)        {            total += i;        }        float sweetAngle = 0;        float startAngle = 0;        int index = 0;        float x = 50f;        float y = 50f;        int width = 200;        foreach (int i in data)        {            sweetAngle = i / total * 360;            g.FillPie(new SolidBrush(colors[index]), x, y, width, width, startAngle, sweetAngle);            g.DrawPie(Pens.Indigo, x, y, width, width, startAngle, sweetAngle);            index++;            startAngle += sweetAngle;        }        bm.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);        g.Dispose();     

?

读书人网 >编程

热点推荐