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

 更新时间:2014年07月30日 14:57:49   投稿:shichen2014  
这篇文章主要介绍了C#实现绘制面形图表的方法,对于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)
    {

    }
  }
}

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

相关文章

  • C#中的异常处理问题try catch finally

    C#中的异常处理问题try catch finally

    这篇文章主要介绍了C#中的异常处理问题try catch finally,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • C#利用接口实现多语种选择功能

    C#利用接口实现多语种选择功能

    这篇文章主要为大家详细介绍了如何C#利用接口实现多语种选择功能,即多语言切换的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2024-02-02
  • P/Invoke之C#调用动态链接库DLL示例详解

    P/Invoke之C#调用动态链接库DLL示例详解

    这篇文章主要为大家介绍了P/Invoke之C#调用动态链接库DLL示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Unity UI组件ScrollRect实现无限滚动条

    Unity UI组件ScrollRect实现无限滚动条

    这篇文章主要为大家详细介绍了Unity UI组件ScrollRect实现无限滚动条,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 事务在c#中的使用

    事务在c#中的使用

    这篇文章介绍了事务在c#中的使用,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#在复杂多线程环境下使用读写锁同步写入文件

    C#在复杂多线程环境下使用读写锁同步写入文件

    这篇文章介绍了C#在复杂多线程环境下使用读写锁同步写入文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C#简单生成缩略图的方法

    C#简单生成缩略图的方法

    这篇文章主要介绍了C#简单生成缩略图的方法,涉及C#操作图片的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • C#中DataTable排序、检索、合并等操作实例

    C#中DataTable排序、检索、合并等操作实例

    这篇文章主要介绍了C#中DataTable排序、检索、合并等操作实例,其中详细介绍了DataTable.Select的一些注意问题和使用技巧等,需要的朋友可以参考下
    2014-04-04
  • C#绘制飞行棋地图小程序

    C#绘制飞行棋地图小程序

    这篇文章主要介绍了C#绘制飞行棋地图小程序的相关资料,非常不错,具有参考借鉴价值,对c飞行棋地图相关知识感兴趣的朋友一起看看吧
    2016-09-09
  • 基于C#后台调用跨域MVC服务及带Cookie验证的实现

    基于C#后台调用跨域MVC服务及带Cookie验证的实现

    本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下
    2013-04-04

最新评论