当前位置: 移动技术网 > IT编程>开发语言>c# > C#实现绘制面形图表的方法详解

C#实现绘制面形图表的方法详解

2019年07月18日  | 移动技术网IT编程  | 我要评论

本例详细讲述了c#实现的面形图绘制例子,这是其中一个核心绘制文件的代码,代码中的里面的注释很多,也比较详细,相信对于初学者学习及理解c#图形绘制方面的技术要点、难点有所帮助。

c#绘制面形图的主要功能代码如下:

using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
using system.io;
namespace 绘制面形图
{
  public partial class form1 : form
  {
    public form1()
    {
      initializecomponent();
    }
    graphics g;//创建graphics对象
    private void button1_click(object sender, eventargs e)
    {
      bitmap bt = new bitmap(panel1.width, panel1.height);//实例化一个bitmap对象
      int flag = (panel1.width-4 )/ 6;//x轴的增值
      g = graphics.fromimage(bt);//实例化graphics对象
      pen p = new pen(color.black, 1);//设置pen对象
      g.drawline(p, new point(0, 0), new point(0, panel1.height-20));//绘制y轴
      g.drawline(p, new point(0, panel1.height - 20), new point(panel1.width - 4, panel1.height - 20));//绘制x轴
      //声明一个用于绘制颜色的数组
      color[] cl = new color[] { color.red, color.blue, color.yellowgreen, color.yellow, color.royalblue, color.violet, color .tomato};
      int[] points = { 20,70,80,60,40,100,10};//声明一个计算走势峰值的数组
      point pt1 = new point(0, panel1.height - 20 - points[0]);//记录绘制四边形的第一个点
      point pt2 = new point(0, panel1.height - 20);//记录绘制四边形的第二个点
      for (int i = 0; i <= 6; i++)//通过for循环绘制月份和面形图
      {
        pointf p1 = new pointf(flag * i, panel1.height - 20);//计算每个月份数字的坐标
        //绘制显示月份的数字
        g.drawstring(i.tostring(), new font("宋体", 9), new solidbrush(color.black), new pointf(p1.x - 2, p1.y));
        //记录绘制四边形的第三个点
        point pt3 = new point(flag * i, panel1.height - 20);
        //记录绘制四边形的第四个点
        point pt4 = new point(flag * i, panel1.height - 20 - points[i]);
        point[] pt={pt1,pt2,pt3,pt4};//声明一个point数组
        g.fillpolygon(new solidbrush(cl[i]), pt);//填充四边形的颜色
        //当继续绘制下一个四边形时,前一个四边形的最后两个点作为下一个四边形的起始点
        pt1 = pt4;
        pt2 = pt3;
      }
      panel1.backgroundimage = bt;//显示绘制的面形图
    }

    private void form1_load(object sender, eventargs e)
    {

    }
  }
}

面形图是平时很普及的一种图表风格,用来显示数据挺方便的。合理的加以应用相信会对程序数据展现的视觉效果有很大的提高!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网