欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

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

本例详细讲述了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)
    {

    }
  }
}

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