zoukankan      html  css  js  c++  java
  • .NET : 如何利用GDI+绘制折线图

    这是今天课堂上讲的一个范例小程序。 其实很多图表控件大多也是这样画出来的。           
                //如何从零开始构造一个图片
                Bitmap b = new Bitmap(600, 400);
                Graphics bg = Graphics.FromImage(b);
                //背景颜色先清除掉
                bg.Clear(Color.LightGray);
    
                //先画横轴
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(10, 380),
                    new Point(580, 380));
    
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(570, 370),
                    new Point(580, 380));
    
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(570, 390),
                    new Point(580, 380));
    
    
                //再画纵轴
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(20, 390),
                    new Point(20, 20));
    
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(10, 30),
                    new Point(20, 20));
                bg.DrawLine(
                    new Pen(Color.Black),
                    new Point(30, 30),
                    new Point(20, 20));
    
    
                //画我们那条趋势线
                List<Point> points = new List<Point>()
                {
                    new Point(20,380),
                    new Point(40,365),
                    new Point(55,350),
                    new Point(100,300),
                    new Point(200,120),
                    new Point(570,30)};
    
                bg.DrawLines(
                    new Pen(Color.Red),
                    points.ToArray());
    
    
                foreach (var item in points)
                {
                    item.Offset(-10, -10);
    
                    bg.FillEllipse(
                        new SolidBrush(Color.Yellow),
                        new Rectangle(item,new Size(20,20)));
    
    
                    item.Offset(5, 5);
                    bg.DrawString(
                        item.Y.ToString(),
                        new Font("Arial", 6),
                        new SolidBrush(Color.Blue),
                        item);
    
                }
    
                bg.Dispose();
    
                b.Save("demo.bmp");

    demo
  • 相关阅读:
    Oracle11gR2 INDEX FAST FULL SCAN 成本计算
    SELECT MIN(ID),MAX(ID) FROM TABLE 优化问题
    一次帮助网友优化的SQL案例
    Oracle11gR2 全表扫描成本计算(非工作量模式noworkload)
    & 符号在 SQLPLUS 的转义
    通过设置SQLPLUS ARRAYSIZE(行预取)加快SQL返回速度
    [linux] 如何让你自己写的程序也支持自动补全(bash环境)
    linux 查看系统版本 命令
    ubuntu右键添加打开终端的快捷菜单
    ubuntu右键添加打开终端的快捷菜单
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1625926.html
Copyright © 2011-2022 走看看